Angular Js在ng-repeat中没有发生默认过滤

时间:2017-08-24 11:33:19

标签: javascript html angularjs

我试图通过将默认值设置为选择框来过滤我在加载页面时的数组值,但它不起作用[更改选择框时它会过滤]

的Json

<select name="location" class="locationFilter col-md-3 col-md-push-9 col-xs-
12" ng-model="location.location_id">
   <option value="">--Select location--</option>
   <option ng-repeat="item in locationsArray" value="{{item.location_id}}" 
 ng-selected= "item.location_id == defaultLocation">{{item.location_name}}  
 </option>
</select>
选择框的

html

<div class="col-md-3 itemList" ng-repeat="item in productArray | 
filter:location">{{item.product_name}}</div>

html for listing array

$scope.defaultLocation=3;

在控制器中,我定义了位置选择的默认值,如下所示

string str4=br4.readLine

任何帮助都将受到高度赞赏

1 个答案:

答案 0 :(得分:1)

使用ng-value,而不是您选项中的值:

  

它主要用于输入[radio]和选项元素,以便在何时使用   选择元素,该元素的ngModel(或其选择   parent元素)设置为绑定值

使用值不会使用ngModel的值更新所选项目,但ng-value会更新它。

<select name="location" class="locationFilter col-md-3 col-md-push-9 col-xs-
12" ng-model="location.location_id">
    <option value="">--Select location--</option>
    <option ng-repeat="item in locationsArray" ng-value="item.location_id">{{item.location_name}}
    </option>
</select>

并且,由于您使用location.location_id作为ng-model,因此您无需为初始化($scope.defaultLocation)设置另一个变量,只需将其初始化:

$scope.location = {location_id: 3};

你不需要ng-selected因为ng-model&amp; ng-value为所选项目执行工作。

这是一个向您展示如何:http://plnkr.co/edit/6AXSA8j06gX5yju9a71y?p=preview

的工作人员