2013-07-31 61 views
1

一些服務器端代碼(GSP)是生成HTML對我來說,像這樣:NG綁定,但存儲內部值

<span> 
    <g:generateAmount /> 
</span> 

我的角度控制器包裝這一點,並希望能夠到的範圍綁定變量到span

<span ng-bind="subtotal"> 
    <g:generateAmount /> 
</span> 

問題是,在結合後,內部文本被刪除,因爲大部未在上初始化所述控制器設置(儘管從控制器寫入它工作正常)。 ng-model似乎也沒有閱讀它。

問題

是否有綁定到一個節點,但仍然存在該節點裏面的數據嗎?例如,在上面的示例中,$ scope.subtotal將等於任何<g:generateAmount />輸出。然後,我可以從控制器更新subtotal,並反映這些更改。

見例如:http://jsfiddle.net/robcampo/zg6GE/2/

回答

2

只需創建自定義的指令,並$compile之前從DOM中獲取價值。

或者你可以改變你生成html並把<g:generateAmount />ng-init屬性,像

<div ng-controller="MyCtrl" ng-init="subtotal=<g:generateAmount>"> 
    <span ng-bind="subtotal" /> 
</div> 
+0

謝謝! ng-init被想到了,但我認爲可能有一個內置的指令方法。如果上面的包含HTML,那麼在ng-init表達式中是否有任何安全的方法來包裝呢? –

+0

@RobCampo它可能會非常棘手,您需要轉義html實體,以便html有效,並且使用'ng-init =「subtotal =''>>'作爲字符串值。 – vittore

+0

很酷,謝謝。 –