您好在下面的html代码中我使用ng-repeat来显示所有带有名称和下拉列表的行。
<div ng-repeat="a in items">
<div>
<span>{{a.name}}</span>
</div>
<div>
<select ng-model="a.c_id" ng-options="d.c_id as d.description for d in loclist" ng-disabled="display" ng-change="selected(a.c_id)">
</select>
</div>
<button ng-click="submit(items)">Submit</button>
在我的控制器中,当c_id的值为3时,它会使用以下代码禁用下拉列表
$scope.display = false;
$scope.selected = function (value) {
this.te = value;
if (this.te == 3) {
this.display = true;
}
};
使用提交按钮我想首先启用之前禁用的所有下拉菜单。使用以下代码
$scope.submit=function(items)
{
for(i=0; i< items.length; i++)
{
this.display=false;
}
}
它不起作用。对于要启用的下拉列表,它不会设置display = false。 请让我知道如何纠正此问题,以便我可以将显示重置为false。 谢谢
答案 0 :(得分:0)
我认为你这里有拼写错误
ng-click="submit(items)"
按以下方式更正sbumit
至submit
$scope.submit=function(items)
{
for(i=0; i< items.length; i++)
{
this.display=false;
}
}
答案 1 :(得分:0)
一个简单的解决方案是将ng-disabled
绑定到项而不是范围:
ng-disabled="a.display"
在ng-change
上,将项目传递给函数:
ng-change="selected(a)"
更改您的选择功能以更新项目的显示属性:
$scope.selected = function (item) {
var value = item.c_id;
this.te = value;
if (this.te == 3) {
item.display = true;
}
};
在提交功能中,只需循环浏览项目并重置显示:
$scope.submit=function(items)
{
for(i=0; i< items.length; i++)
{
items[i].display=false;
}
}