所以我试图绑定一个指令(外部访问)到ng-repeat内部的模型中。因此,在外部控制器我有一个变量,我想结合在像AngularJS,绑定到ng-repeat中的模型
//in the directive scope
filterArray: '='
指令内,将指令内被绑定到一个模型中的NG-重复像这样 -
//inside the directive
<li ng-repeat="value in filter.values">
<input type="checkbox" ng-model="filterObject[filter.name][value]" ng-change="filterChange()">{{value}}
</li>
这工作正常,直到我改变指令有一个隔离范围,现在它说不能设置未定义的属性。有什么方法可以按预期工作吗?这个想法是,当用户点击输入时,变量会生成,所以外部控制器将能够看到构建的对象。
道歉,如果这有点令人困惑 - 我已经做了一个小提示澄清:https://jsfiddle.net/vt1uasw7/42/。
我希望外部控制器能够访问通过绑定模型构建的对象 - 在添加隔离范围之前,这仍然有效。谢谢!
编辑:也许在这种情况下的诀窍是不使用隔离范围?这其中有我难住了,我已经试过的范围每一个属性组合:(
我在你的小提琴中看到的第一件事情是你的隔离区域有一个'filterArray'属性,但是你在你的模板中引用了'filterObject'(可能是外部作用域中的项目)。 – Claies
@Claies啊感谢捕捉。即使使用正确的语法它仍然有相同的问题:(。 – ajmajmajma
你确定你只改变了指令的范围而不改变你的模型吗?你得到的错误是因为你试图访问你的filterObject中的一个键/ filterArray不存在。 – Martin