如何在模态实例中使用过滤器

时间:2015-03-31 02:17:14

标签: javascript html angularjs

我使用模态实例打开一个带有控制器的模态,控制器在主控制器内定义。

var helloControllers = angular.module('helloControllers', []);

helloControllers.controller('ScheduleUpdateCtrl', ['$scope','$routeParams', '$http','$modal',
function($scope,$routeParams, $http, $modal) {

/*--------lines of code-------------*/

$scope.setting=function(){
      var modalInstance = $modal.open({
          templateUrl: 'ScheduleSettings/ScheduleSettings.html',
          controller: ScheduleSettingsCtrl,

/*--- lines of code--------------*/

var ScheduleSettingsCtrl = function ($scope, $modalInstance,$filter,scheduleId,scheduleName,grouplist,devicelist,secondtime)

现在我需要使用列表框的过滤器来排除另一个列表框中包含的项目

<select size=9 ng-model="deviceselected" ng-options="de as de.DEVICE_NAME for de in deviceAllList|exclude"></select>
<select size=9 ng-model="deviceavailable" ng-options="de as de.DEVICE_NAME for de in deviceList"></select>

类似的东西:

filter('exclude',function(){
return function(array){
    var out=[];
    alert('!');
    for(var i=0;i<array.length;i++){
        alert(array[i].GROUP_ID);
        if(groupList.map(function(e) { return e.GROUP_NAME; }).indexOf(array[i].GROUP_NAME)==-1)
            out.push(array[i]);
    }
    return out;
};

但我不知道在哪里放这些行或在html中使用它。我很无能,所以对demo的帮助会非常感激。


更多详情

更多问题: 过滤器定义应该在哪里?我试过了

 helloControllers.filter('exclude',function(){

如何测试过滤器调用是否有效/未定义?我收到了这个错误。

Error: [$injector:unpr] Unknown provider: excludeFilterFilterProvider <- excludeFilterFilter

1 个答案:

答案 0 :(得分:2)

试试这个:就像我们在其他一些html元素中使用过滤器一样简单。使用|的方法可以在ng-options

中应用过滤器
 <select size=9 ng-model="deviceselected" ng-options="de as de.DEVICE_NAME for de in deviceAllList | exclude"></select>
 <select size=9 ng-model="deviceavailable" ng-options="de as de.DEVICE_NAME for de in deviceList | exclude"></select>