2013-12-19 29 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" /> 
相关问题