0

我有一个轴类型的选择列表,每个类型都有一个前轴或后轴的类型属性。我似乎无法过滤掉“前”和“后”的重复词。

在此处输入图像描述

更新:

html:

<select ng-model="axleType.Type" ng-options="type for type in uniqueTypes">  

控制器:

    $scope.axleTypes = API.GetAxleTypes();

    $scope.fixedAxleTypes = [
    { "$id": "1", "Description": "I beam, telescopic type shock absorbers", "Type": "Front", "Id": 1 },
    { "$id": "2", "Description": "Full-floating banjo housing", "Type": "Rear", "Id": 2 },
    { "$id": "3", "Description": "Something Else", "Type": "Rear", "Id": 2 },
    { "$id": "4", "Description": "I beam, telescopic type shock absorbers", "Type": "Front", "Id": 4 }
    ];

    // This Works
    $scope.uniqueTypes = _.uniq(_.pluck($scope.fixedAxleTypes, 'Type'));

    // This does not
    //$scope.uniqueTypes = _.uniq(_.pluck($scope.axleTypes, 'Type'));

    // This does not
    //$scope.uniqueTypes = _.uniq(_.pluck(API.GetAxleTypes(), 'Type'));

我彻底糊涂了。是的,API 有效,我从Chrome > Network>Response 窗口复制粘贴的上述数据

4

2 回答 2

0

看到您在编辑中添加的错误,我确信原因是我在评论中描述的,这是在(axleType.Type)无法评估该表达式的上下文中使用过滤器的表达式。由于您没有在过滤器实现中使用表达式,我相信您可以完全省略它。

于 2013-03-20T23:38:22.213 回答
0

我猜API.GetAxleTypes();应该做一些异步任务,比如调用$http。如果是这种情况,则$scope.axleTypes不会是您正在寻找的数组类型。GetAxleTypes可以看起来与此类似。

服务定义:

{
   uniqueaxleTypes:[],
   GetAxleTypes = function($http,..){
     var promise = $http({
       //config
     })
     promise.then(function(response){
       this.uniqueaxleTypes = _.uniq(_.pluck(response.data, 'Type'));
     })
   }
}

然后,如果您将范围变量绑定到 this uniqueaxleTypes,它将始终反映唯一值。

由于 $scope.fixedAxleTypes是硬编码值,因此可以正常工作。

于 2013-03-21T02:43:30.643 回答