使用ng注入的过滤器:包括未应用于表格

时间:2014-03-02 11:29:25

标签: angularjs angularjs-ng-include

我的页面上有一个movielist,我的控制器代码就像这样

angular.module('rentalapp.controllers.rentals', ['restangular'])
.controller('rentalController', ['$rootScope','$scope', 'DataService', function($rootScope, $scope, DataService){
    //$rootScope.obj = {search: []};
    DataService.getRentals().then(function(data){
        $scope.movielist = data;

    });

}])

在我尝试使用复选框过滤器过滤列表之前,一切正常。我使用ng:include包含filters.html。如果过滤器是数据模板的一部分,一切正常,但如果它的部分ng:包括过滤器不起作用。我知道:include会创建一个子范围,但我不知道如何解决这个问题。我的过滤器代码如下所示

<input type="checkbox" data-ng-model='search.$' data-ng-true-value='Unrated' data-ng-false-value='' />Unrated</label>

,数据中继器是:

<tr ng-repeat="movie in movielist | filter:search">
          <td>{{$index+1}}</td>
          <td><a href="#/detail/{{movie._id.$oid}}">{{movie.title}}</a></td>
          <td>{{movie.year}}</td>
          <td>{{movie.mpaa_rating}}</td>
          <td><a class="btn btn-success" href="#/edit/{{movie._id.$oid}}">Edit</a></td>
          <td><a class="btn btn-danger" href="#/delete/{{movie._id.$oid}}">Delete</a></td>
        </tr>

1 个答案:

答案 0 :(得分:2)

正如您所指出的,包含的html获得了它自己的范围。要绑定到父作用域上的搜索属性,您可以使用:

<input type="checkbox" data-ng-model='$parent.search.$' />