我有一個頁面,其中列出了主要內容區域中的多個「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的新手 - 這種方法是實現結果的最佳方式嗎?