我正在尝试从子控制器访问/修改父控制器中的一些变量。这个变量是一个承诺(一些$http请求),所以当我呈现子控制器中的元素时,这个变量仍然不存在。
我意识到使用ng-if可以帮助我解决这个问题。但这两个作用域不能通信。我的问题是:
http://jsbin.com/rahidukuvi/1/edit
发布于 2014-12-08 06:52:11
最佳实践是创建一个可以在控制器之间共享的服务(该服务使用单例模式)。
发布于 2014-12-08 03:08:03
最简单的方法是在子控制器中使用$scope.$watch等待父控制器中ajax回调时任何变量值的更改。在子控制器的$scope.$watch回调中,您可以根据需要更改变量值。
发布于 2014-12-08 03:12:15
您可以使用广播来让子控制器知道更改的值。然后,您将在子控制器中听到这一点,并执行必要的操作。见下面的示例代码
.controller('MyController',
function($scope, $interpolate, $timeout) {
//$scope.sssss = {};
$scope.$watch('sssss.a', function() {
$scope.$broadcast('valueChanged', $scope.sssss)
});
$timeout(function() {
$scope.sssss = {
a: '12345'
};
}, 2000);
})
.controller('MyChildController',
function($scope, $interpolate, $timeout) {
$scope.$on('valueChanged', function(event, value) {
$scope.ttttt = value.a + '123';
});
});https://stackoverflow.com/questions/27349932
复制相似问题