我有
<li ng-repeat="item in dummyData | unique:'status'" ng-click="select(item);" ng-class="{active: isActive(item)}"><a>{{item.status}}</a></li>
我想要做的是,在ng-click set
上myFilter as
myFilter = {status: '{{item.status}}'}
我想做的是
$scope.dummyData = [{id: 1, name="Joe", status="active"},{id: 2, name="Joe",status="inactive"},{id: 3, name="John", status="active"}];
这里我有关于ng-repeat的li元素并且获得了独特的状态。
我有一个带有相同虚拟数组的表列表,由myfilter过滤。
<tr ng-repeat="item in dummyData | filter:myfilter">
我所要做的就是,
<li ng-click='myfilter = {status: "active"}'><a>Active</a></li>
<li ng-click='myfilter = {status: "inactive"}'><a>Inactive</a></li>
我已经以静态方式实现了这一点,但我想在上面重复这样做。
答案 0 :(得分:0)
好的,你应该只使用angular提供的默认过滤器,这样你的代码将如下所示:
<li ng-repeat="item in dummyData | filter:status" ng-click="select(item);" ng-class="{active: isActive(item)}"><a>{{item.status}}</a></li>
答案 1 :(得分:0)
由于默认过滤器使用部分匹配,因此您需要编写自定义过滤器以进行精确匹配。您更新的控制器将如下所示:
function MyCtrl($scope) {
$scope.dummyData = [
{id: 1, name:"Joe", status:"active"},
{id: 2, name:"Jane",status:"inactive"},
{id: 3, name:"John", status:"active"}];
$scope.setFilter = function(statusValue) {
$scope.myFilter = function(item) {
return item.status === statusValue;
};
};
};
请注意,dummyData的语法也不正确,因此也会导致问题。只要您点击“有效”或“无效”,它就会重新定义自定义过滤器,以使状态与“有效”状态完全匹配。或者&#39;不活跃&#39;。
这是一个展示你想要的fiddle。