我已经将我的产品从角1.2.x更新到了1.4.x。
在将angularjs更新到1.4.x之后,这里我面临的问题是
我所拥有的:我添加了带有角1.2.0的片段,下面是具有相同代码的1.4.8的JSFIDDLE。
Explanation:
从“多选择”框中选择任意一个用户,使其处于活动状态.选择第二个用户(使用ctrl键)。
观察:1.2.x :第一个被选中的值仍然是活动的(true) 1.4.x :在选择第二个值之后,第一个值活动标志得到重置。
为什么会这样?如何才能在1.4.x中获得现有的(1.2.x)输出
注:我的英语写作不太好。请避免犯语法错误,或改正:)
谢谢!
var app = angular.module('test',[]);
app.controller('selectIssue',function($scope){
$scope.users = [{
name:"Rohit",
active:false
},
{
name:"Virat",
active:false
},
{
name:"Viky",
active:false
}];
$scope.selectedName = [];
})<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>
<div ng-app="test">
<div ng-controller="selectIssue">
<div>
<select multiple ng-model="selectedName" ng-options="user.name for user in users track by user.name"></select>
</div>
Selected value table :
<div>
<table border="1">
<tr>
<td>Name</td>
<td>isActive</td>
<td>Output</td>
</tr>
<tr ng-repeat="n in selectedName">
<td>{{n.name}}</td>
<td><input type="checkbox" ng-model="n.active"></td>
<td>{{n}}</td>
</tr>
</table>
</div>
</div>
</div>
发布于 2017-10-04 14:54:38
更改复选框时,您不是在更新$scope.names,而是$scope.selectedNames。这意味着您必须在复选框中使用ng更改来更新$scope.names。
$scope.updateName = function(name) {
angular.forEach($scope.names, function(n) {
if (n.name === name.name) {
n.active = name.active
}
})
}这是一个更新的小提琴
https://stackoverflow.com/questions/46567624
复制相似问题