我得到了以下问题:我需要将schoolList作为参数传递给ngClick函数(以便可以与其他数组重新使用该函数)。但是当我尝试处理函数内的数组时,使用'group'局部变量,它不会更新数组本身。角度传递一个变量作为函数的参数和处理
如果我在函数中使用'scope.schoolsList'而不是'group',一切正常。
有没有办法解决这个问题,并使其工作?我的指令
相关相提并论:
link: {
scope.schoolsList = [
'item 1',
'item 2',
'item 3',
'item 4',
];
scope.addItem = function(obj, array, group){
array.push(obj);
group = group.filter(function(list){
return list !== obj;
});
};
scope.removeItem = function($index, group){
group.push(scope.newData.schools[$index]);
scope.newData.schools.splice($index,1);
console.log(scope.newData.schools);
}
}
的HTML
<select id="newSchool" name="newSchool" ng-model="newSchool" ng-options="school for school in schoolsList | orderBy:school">
<option value="" hidden>-- Select --</option>
</select>
<a ng-click="addItem(newSchool, newData.schools, schoolsList)">add</a>
<ul class="list-inline">
<li ng-show="newData.schools.length > 0">
<ng-pluralize count="newData.schools.length"
when="{'0': '','one': 'School: ','other': 'Schools: '}">
</ng-pluralize>
</li>
<li ng-repeat="school in newData.schools">
<span>{{ school }}</span>
<a ng-click="removeItem($index, schoolsList)">[X]</a>
</li>
</ul>
组= group.filter()似乎并不正确,你可以尝试声明组变量的指令级不是函数作用域。 –