我在我的Angular應用程序中有一個內容控制器和一個頭控制器。內容控制器可以將項目添加到對象數組。標題控制器將這些項目放入導航中。
加載時,頭控制器成功從數據庫加載現有項目並將它們添加到全局範圍,然後通過ng重複顯示在導航欄中。
當內容控制器將新項目添加到全局範圍時,雖然它未反映在標題中。我可以註銷全局範圍的內容,並且新項目在那裏,它只是不想在dom中顯示。使用$ apply()似乎沒有任何區別。
這裏的2個控制器:
HeaderCtrl:
angular.module('system').controller('HeaderController', ['$scope', 'Global', 'Lists', function ($scope, Global, Lists) {
$scope.global = Global;
$scope.find = function() {
Lists.query(function(lists) {
$scope.global.lists = lists;
});
};
}]);
ContentCtrl:
angular.module('lists').controller('ListsController', ['$scope', '$routeParams', '$location', '$http', 'Global', 'Lists', function ($scope, $routeParams, $location, $http, Global, Lists) {
$scope.global = Global;
$scope.create = function() {
var list = new Lists({
name: this.name,
});
list.$save(function(response) {
$location.path('lists/' + response._id);
$scope.global.lists.push(response);
});
};
}]);
就像我說從標題控制器控制檯日誌顯示,新產品出現在$ scope.global.lists,但不會反映在DOM中。有任何想法嗎?
爲什麼你有兩個獨立的模塊? – link64
您能否包含相關的html(包含'ng-repeat'的位? –
)它們是2個獨立的模塊,因爲我使用MEAN堆棧作爲項目的基礎。將來我可能會合並2個,但目前它使事情有點整齊,沒有太多的功能重疊。 –