Javascript AngularJS ngForm在ngRepeat中与ngIf绑定会导致未定义的形式
我将Javascript AngularJS ngForm在ngRepeat中与ngIf绑定会导致未定义的形式,javascript,angularjs,angularjs-ng-form,Javascript,Angularjs,Angularjs Ng Form,我将ngForm-s嵌套在ngRepeat中。表单绑定到页面控制器上的变量。然后使用ngIf根据选项卡的活动索引将表单添加到DOM中或从DOM中删除表单 奇怪的是,如果我按升序激活制表符,表单将正确绑定到控制器的表单变量,但如果我按降序激活制表符,表单将不绑定 angular.module(“myApp”,[]) .controller(“MyController”,函数($scope){ var ctrl=this; ctrl.index=0; ctrl.tabs=[1,2,3,4,5];
ngForm
-s嵌套在ngRepeat
中。表单绑定到页面控制器上的变量。然后使用ngIf
根据选项卡的活动索引将表单添加到DOM中或从DOM中删除表单
奇怪的是,如果我按升序激活制表符,表单将正确绑定到控制器的表单变量,但如果我按降序激活制表符,表单将不绑定
angular.module(“myApp”,[])
.controller(“MyController”,函数($scope){
var ctrl=this;
ctrl.index=0;
ctrl.tabs=[1,2,3,4,5];
ctrl.text=null;
ctrl.setIndex=函数(索引){
ctrl.index=索引;
};
});代码>
{{ctrl.form?“表单已绑定!”:“表单未绑定。”}
我不知道为什么表单与控制器解除绑定(这一定是由于ng repeat
内部)
但是,如果您将每个表单绑定到不同的名称,即:
<ng-form name="ctrl.form{{item}}" ng-if="ctrl.index===$index">
然后一切按预期进行
angular.module(“myApp”,[])
.controller(“MyController”,函数($scope){
var ctrl=this;
ctrl.index=0;
ctrl.tabs=[1,2,3,4,5];
ctrl.text=null;
ctrl.currentForm=函数(){
返回ctrl['form'+ctrl.tabs[ctrl.index]];
};
ctrl.setIndex=函数(索引){
ctrl.index=索引;
};
});代码>
{{ctrl.currentForm()?“表单在索引为“+ctrl.index+”!”:“表单未绑定的选项卡中绑定。”}
是的,最终我将表单绑定到ng repeat集合项上的属性。但我真的很想弄清真相。另外,如果您将ng if=“ctrl.index====$index”更改为ng if=“ctrl.index”
ctrl.currentForm = function() {
return ctrl['form' + ctrl.tabs[ctrl.index]];
};