我的页面上有一个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>
答案 0 :(得分:2)
正如您所指出的,包含的html获得了它自己的范围。要绑定到父作用域上的搜索属性,您可以使用:
<input type="checkbox" data-ng-model='$parent.search.$' />