如何迭代动态创建的参数?

时间:2016-05-15 05:47:51

标签: angularjs typescript

我的代码动态创建名称如下的表单:

<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

1 个答案:

答案 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

中的工作版本