[英]AngularJS - model changes not updating the view
AngularJS Classic:我在ng-click
上改變我的模型,視圖沒有更新。 我認為只是$scope.$apply()
會更新,但我沒有讓它工作。 我想我沒有在適當的地方設置$apply()
或類似的東西。
示例: Plunker
按下按鈕可更改對象的名稱。
只需在點擊后再次更新您的explorerObject
,因為它仍然指向您之前的對象:
$scope.click = function () {
ExplorerService.setExplorerObject({
selected : {
name: 'Defined Now !',
id: 'id',
timestamp: 'timestamp'
},
templateURL: 'views/beispiel.html'
});
$scope.explorerObject = ExplorerService.getExplorerObject(); // <--- here
}
工作: http : //plnkr.co/edit/UWE7o3mtAzY3xzYRWfkf?p =preview
問題后'編輯:
您可以在第二個控制器中使用$watch
:
app.controller('SecondCtrl', function($scope, ExplorerService) {
$scope.$watch(function(){
return ExplorerService.getExplorerObject();
},function(n,o){
$scope.explorerObject = ExplorerService.getExplorerObject();
},true)
});
工作: http : //plnkr.co/edit/8mZO5kZmTrqwHKnxtBSd?p=preview
或者使用$broadcast
方法,例如:
app.controller('SecondCtrl', function($scope, ExplorerService) {
$scope.explorerObject = ExplorerService.getExplorerObject();
$scope.$on("EXPLORER_OBJECT_CHANGED" ,function(event,obj){
$scope.explorerObject = obj;
});
});
並在您的服務中添加: $rootScope.$broadcast("EXPLORER_OBJECT_CHANGED", explorerObject);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.