2013-02-26 48 views
2

我可以很容易地與代碼數據綁定到一個div或前標籤:AngularJS結合JSON的形式輸入

<div id="json_route{{route.id}}" ng-bind="items.route{{route.id}} | json"></div> 

不過,我想嘗試這個數據綁定到一個隱藏的表單輸入,我試過:

<input type="hidden" name="json_route{{ route.id }}" 
ng-model="items.route{{route.id}} | json" /> 

它返回我的一個錯誤:

Error: Non-assignable model expression: items.route2 | json (<input type="hidden" name="json_route2" ng-model="items.route2 | json">) 

所以,很顯然,我不能用| json在使用ng-model時。角度文檔仍然有點稀疏,我似乎無法找到如何正確分配,即使我可以?謝謝:)

我需要加載到我的金字塔應用此JSON數據,然後分配到一個隱藏表單域似乎是最好的方式待辦事項它,或者我應該以不同的方式來這樣做呢?

+0

請注意我的{{}}的使用是django/jinja模板代碼,因此假設items.route {{route.id}}會呈現爲items.route1等。 – Cro0ksey 2013-02-26 16:25:49

回答

0

爲了能夠在模型渲染到視圖,該模型必須能夠被從範圍引用。」(SRC:Angular Guide)。

角需要能夠在ngModel表達引用的值到一個$範圍變量在控制器中。

含伍綁定它的工作,因爲NG綁定是不一樣的NG-模型。 ngBind 簡單需要你的表達,並評估其當前範圍內,不是取代,結果主元素的文本。 As Guide告訴我們,ng-model的值必須是可分配的角度表達式,以便與數據綁定到

爲了讓您的隱藏輸入包含'items.route2'模型的json字符串表示形式,您可以在控制器中設置$ watch表達式,該表達式可以隨時「準備」模型的json字符串。見plnkr example

+0

感謝這正是我所需要的,但是我的json沒有更新數據更改時,儘管$ watch http://embed.plnkr.co/yK654zxxXH0FwP9LVsyT/preview我錯過了什麼? – Cro0ksey 2013-02-27 11:55:30

+0

我會幫忙的,但請首先拋開與實際問題無關的所有事情來簡化您的plnkr。試圖分析這樣一個沉重的笨蛋是非常費時的。 – Stewie 2013-02-27 12:14:41

+0

http://embed.plnkr.co/yK654zxxXH0FwP9LVsyT/preview修剪的脂肪,在index.html的底部是所有與手錶的代碼,正如你可以從JSON是在底部返回的看到預覽 – Cro0ksey 2013-02-27 12:29:45