我的代码动态创建名称如下的表单:
<div ng-click="wos.wordWordFormRowClicked(wf, $index)"
ng-form="wos.wordFormNgForm_{{$index}}"
ng-repeat="wf in wos.word.wordForms">
wos是服务的名称。
我想做的是迭代这些并检查他们的$ pristine。我想我可以这样做:
angular.forEach(self.word.wordForms, function (wf, key) {
// ?
});
我想知道的是,如何在forEach内部获得对将动态创建的wos服务参数的引用?
这些参数将是这样的:
wos.wordFormNgForm_1.$pristine
wos.wordFormNgForm_2.$pristine
wos.wordFormNgForm_3.$pristine
答案 0 :(得分:1)
Angular的“Controller as”语法可以帮助我们将FormController与当前视图的Controller绑定。
<div ng-app='app' ng-controller='default as wos'>
<div ng-click="wos.wordWordFormRowClickd(wf, $index)"
ng-form="wos.wordFormNgForm_{{$index}}"
ng-repeat="wf in wos.wordForms">
</div>
</div>
此外,我们可以使用数组语法来访问Object的属性。
angular.module('app',[]).controller('default', function() {
this.wordForms = ["1", "2", "3", "4"];
this.checkForm = function() {
for (var i = 0; i < this.wordForms.length; i ++) {
console.log(this["wordFormNgForm_" + i].$pristine);
}
}
})
请参阅jsfiddle
中的工作版本