我在同一页面使用两个控制器。
First Controller有两个标签。第一个标签有联系人列表,第二个标签有收藏夹列表。
在第一个标签中。我正在显示所有数据。 在第二个Tab中,我显示了基于isFavourites字段的数据
ng-show="user.isFavourites"
如果是真的。它正在显示。
点击第一个标签页上的联系人列表。 Popup将显示。在那个弹出窗口中,我有一个AddFav按钮。 Popup是第二个控制器。
当我点击AddFav按钮时,我设置isFavourites为真。
所以我的问题是
设置isFavourites后,当我转到第二个标签时,数据将显示上次更新归档。
我的表格是
<div id="userListControl">
<div id="tab1">...</div>
<div id="tab2">...</div>
</div>
<div id="userDetailsControl">
</div>
userDirectory.controller("userListControl", function($scope,$rootScope, $http)
{
$http.get('data/userData.json').success (function(data){
$scope.users = data;
});
$scope.selectUser = function(user){
$rootScope.selectedUser = user;
showPopup();
}
});
});
// Contact Details Controller with Watch()
userDirectory.controller("userDetailsControl", function($scope, $rootScope){
$rootScope.$watch("selectedUser", function(newVal){
$scope.user = newVal;
});
$scope.addFav = function(user){
$rootScope.selectedUser.isFavourites = true;
console.log($rootScope.selectedUser)
}
});
在第一个控件中,Selectuser用于单击联系人列表时,它将在弹出窗口中显示该数据
答案 0 :(得分:0)
我得到了解决方案。
我正在使用广播。
在第二个控制器中
$scope.addFav = function(user){
$scope.user.isFavourites = true;
$rootScope.$broadcast('addFavourites', $scope.user);
}
在第一个控制器中
$scope.$on('addFavourites', function (event, data) {
// Here I am doing my stuff..
});