2013-12-19 75 views
0

我有一個角軌與由不規則數據的屬性,它是潛在的相當complicated--類似資源:如何將輸入綁定到複雜數據結構中的某個屬性?

{ foo: [ { bar: 'baz', lol: [ { 'omg': ... etc 

我建了一個指令,它需要這些數據,並深入到它,動態渲染每個對象的表單字段...我已經完美地顯示了數據,但是缺少的一部分難題是,我如何利用Angular的綁定,以便更改表單輸入的值將實際更新該屬性該模型?

本來我想這應該是簡單的,通過數據結構我的代碼演練,它剛好可以維持的路徑,所以我想最終是這樣的:「myObject.foo.bar」

然後,我可以只傳遞給表單輸入的NG-模型屬性......但是,我無法得到的角度認識到NG-模型=「路徑」,其中$ scope.path =「myObject.foo.bar」 ... ng-model =「{{path}}」也不起作用。

我的指令是使用angular.forEach深入到這個數據結構,有人向我提到我應該使用ng-repeat來代替,但我不確定這是否是正確的方法或不?我還是覺得應該只是一個方式做NG-模型=「路徑」,並有工作......

任何指導,將不勝感激。

回答

0

要使用動態屬性名稱,請使用數組表示法。即myObject的[ 「foo」 的] [ 「酒吧」]。 Plunkr:http://plnkr.co/edit/W60F75?p=preview

+0

問題是,我需要一個變量,可以分配給我追加到一個字符串 - 結果是「myObject.foo.bar」。我想你的建議,並沒有work--在這裏看到:http://plnkr.co/edit/xo81F3NE6ABEl9M4AdYH?p=preview – patrick

+0

啊......我不知道的方式與一個完全動態的做對象名稱/屬性層次結構。任何工作解決方案都可能涉及到eval ...你的plunker沒有做的是用字段中的字符串輸入替換$ scope.path指向的對象。 –

0

你可以嘗試用物體本身的價值上的範圍設置的屬性,然後在表單元素參考呢?像如下:

// In your script 
$scope.obj = myObject; 

// In your form 
<input ng-model="obj.foo.bar" type="text" /> 
相關問題