【发布时间】:2016-04-02 08:44:02
【问题描述】:
我正在尝试过滤使用 ng-repeat 生成的选择框中出现的选项。如果在一个选择框中选择了特定选项,则它不应显示在其他附加的选择框中。我尝试使用自定义过滤器,但它导致 Angular 出现语法错误。
<html ng-app="myApp" ng-controller="myCtrl">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"> </script>
<script src="app.js"></script>
</head>
<body>
<ul>
<li ng-repeat="element in segments">
<input type="text" name="comment" ng-model="element.comment">
<select name="mySelect" id="mySelect" ng-options="employee.name for employee in employeeList|selected track by employee.name" ng-model="employeeName" ng-change="exclude(employeeName.name)"></select>
</li>
</ul>
<button type="button" ng-click="addSegment()">Add segment</button>
</body>
</html>
这是脚本
var myApp = angular.module('myApp', []);
myApp.controller('myCtrl', function($scope) {
$scope.segmentId = 0;
$scope.segments = [];
$scope.employeeList = [{'name' : 'jhon','isAssigned' : 0},{'name' :'wayne','isAssigned' : 0},{'name' : 'clark','isAssigned' : 0}];
$scope.addSegment = function () {
var segment = {
'id' : $scope.segmentId,
'assignedTo' : null,
'comment' : null
};
$scope.segments.push(segment);
$scope.segmentId++;
console.log($scope.employeeList);
};
$scope.exclude = function (userName) {
for (var i = 0; i < $scope.employeeList.length; i++) {
var employee = $scope.employeeList[i].name;
if (employee == userName) {
$scope.employeeList[i].isAssigned = 1;
}
}
};
});
myApp.filter('selected', function() {
return function() {
if(employee.isAssigned == 0) {
return employee;
}
return;
};
});
【问题讨论】:
标签: javascript angularjs