我有一个angular-rails资源,其属性包含可能非常复杂的不规则数据 - 例如:
{ foo: [ { bar: 'baz', lol: [ { 'omg': ... etc
我构建了一个指令,它接收这些数据并向下钻取,动态渲染每个对象的表单字段...我已经完美地显示了数据,但是这个拼图的缺失却是是,我如何利用Angular的绑定,以便更改表单输入上的值实际上会更新模型中的该属性?
最初我认为这应该很简单,因为我的代码在数据结构中钻取,它只能维护一条路径,所以我最终得到的结果是:' myObject.foo.bar& #39;
然后我可以将它传递给表单输入的ng-model属性......但是,我无法识别ng-model =" path"其中$ scope.path =" myObject.foo.bar" ... ng-model =" {{path}}"也没用。
我的指令是使用angular.forEach深入研究这个数据结构,有人曾向我提到我应该使用ng-repeat代替,但我不确定这是否是正确的方法或不?我仍然觉得应该有办法做ng-model =" path"并有这项工作......
非常感谢任何指导。
答案 0 :(得分:0)
要使用动态属性名称,请使用数组表示法。即myObject的[ “foo” 的] [ “酒吧”]。普兰克:http://plnkr.co/edit/W60F75?p=preview
答案 1 :(得分:0)
您可以尝试使用对象本身的值在范围上设置属性,然后在表单元素中引用它吗?如下所示:
// In your script
$scope.obj = myObject;
// In your form
<input ng-model="obj.foo.bar" type="text" />