我有一个页面,其中列出了主要内容区域中的多个“tiles”类型(<div>
's)以及包含充当过滤器的链接列表的页眉。
E.g.在标题区域,点击'pdf'过滤器链接 - 仅显示ng-show="showFiles['pdf']
的瓷砖。如果单击“视频”,则将显示ng-show="showFiles['video']
的图块等等。
标题模板由hdrController
控制,而图块由pageController
控制。
最初,当视图加载$范围可变showFiles
在pageController
从服务Tweaks
其将所有项真接收对象(从而显示出所有瓦片在启动时):
testApp.controller('pageController', ['$scope', 'Tweaks', function($scope, Tweaks){
$scope.showFiles = Tweaks.tagFilters('all');
}]);
testApp.factory('Tweaks', function(){
var tweaksFactory = {};
var obj = {};
tweaksFactory.tagFilters = function(filter) {
if(filter == 'all') {
obj = {
'video' : true,
'pdf' : true,
'doc' : true
};
} else {
obj = {
'video' : false,
'pdf' : false,
'doc' : false
};
}
return obj;
};
return tweaksFactory;
});
问题:当点击过滤器链接,会应用一个检测点击的指令 - 然后需要更新$scope.showFiles
以仅显示具有特定过滤器类型的图块。
请参阅Plunkr - $scope
的pageController
其中包含showFiles
对象不会更新,所以更改不会反映出来。
有人可以提供任何建议吗?我是Angular的新手 - 这种方法是实现结果的最佳方式吗?