ng-repeat绑定集合,使用选项卡过滤布尔值,当我更新集合时,过滤器不会重新应用
ng-repeat bind collection filtered by a boolean using tabs, when I update the collection the filter doesn't re-apply
我有一个ng-repeat,它显示一个使用选项卡(最喜欢的项目)的布尔过滤的集合,当我更新集合时,过滤器不会重新应用。我:
所有项目|收藏
- 第1项
- 项3
当它第一次从服务器加载(使用json)集合时,选项卡工作良好并过滤集合。当你点击一个项目,我更新最喜欢的项目属性,但过滤器不更新,如果你点击选项卡,似乎数据没有得到更新。
代码:HTML:<button class="btn" ng-model="section" value="all-items" ng-click="filterCriteria={}; activate('all-items')" ng-class="{disabled: products.length == 0, active: section == 'all-items'}">All items ({{products.length}})</button>
<button class="btn" ng-model="section" value="favourites" ng-click="activate('favourites'); filterCriteria.Favourite = true;" ng-class="{disabled: (products | filter: {Favourite:true}).length < 0, active: section == 'favourites'}">Favourites</button>
<!-- List of products -->
<ul>
<li ng-repeat="product in products | filter: filterCriteria">
<button class="btn" type="button" ng-click="favouriteClick(product)">Favourite</button>
<p>{{product.description}}</p>
</li>
</ul>
控制器app.controller('ProductListCtrl', ['$scope', '$http', function ($scope, $http, $filter) {
$http.get('/Products').success(function (data) {
$scope.products = data;
});
$scope.filterCriteria = {};
$scope.section = "all-items";
$scope.activate = function (option) {
$scope.section = option;
};
$scope.favouriteClick = function (product) {
product.favourite = !product.favourite;
// Sync with back-end
$http({
method: 'POST',
url: '/SetFavourite',
data: 'name=' + product.Sku + '&value=' + product.favourite,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
};
} ]);
非常感谢任何反馈。由于
编辑
我已经创建了一个小提琴解决方案http://jsfiddle.net/njrHm/
这是大小写问题。你有:
ng-click="activate('favourites'); filterCriteria.Favourite = true;"
…然后是:
product.favourite = !product.favourite;
我知道你想把你的ngClick
改成小写的favourite
。
相关文章:
- 在web应用程序中的新搜索中重新加载搜索结果(不带jQuery)
- MeteorJS:用户集合如何公开新字段
- Chrome应用程序在全屏中创建新窗口-html元素不是全高的
- 如何在ChromeOS上从Chrome应用程序配对新的蓝牙设备
- 在应用新转换之前停止所有转换
- 谷歌应用脚本打开新窗口
- 使用Node中的Q promise库对值数组顺序调用/执行相同的函数;并返回带有结果的新数组/集合
- 如何在数组中以ng个重复间隔应用新添加的对象
- 如何在设置后将 Express.js 用于新的 Web 应用
- 在获取后将新模型准备到集合中(不带比较器)
- Ng在同一集合上重复,通过应用程序多次使用
- 扩展成员应用程序,包括新的路线,现在没有任何渲染
- jQuery倒计时-应用于通过AJAX/PHP加载的新元素
- 将新按钮应用于游戏
- 获取模板是用我的Node.JS应用程序的新版本Handlebars错误预编译的
- 如何从node-webkit应用程序启动新应用程序
- 在可分页集合中应用了一些分页后,浏览器崩溃
- 使用Node和Angular为自动登录创建新应用——需要洞察力
- 电子新应用结构
- 设计具有骨干模型和集合的应用程序