【发布时间】:2015-09-27 10:50:33
【问题描述】:
我想调用一个函数或更改另一个控制器内部的变量/s 的值。我在网上查找了解决方案并了解到我必须创建一个 service 并在两个控制器中使用它,但是我无法理解 service 如何访问 $scope.home_main 和 $scope.home_main 变量为他们在不同的scope。
JS
app.controller('Controller1', function ($scope, $window) {
$scope.toggle = function() {
$scope.home_main = !$scope.home_main;
$scope.full_page_place_holder = !$scope.full_page_place_holder;
};
});
app.controller('Controller2', function ($scope, $window) {
$scope.onTabSelect=function(){
// here I want to call toggle function which is inside another controller.
};
});
更新的 HTML
<div ng-controller="Controller1">
<div ng-hide="home_main"></div>
</div>
<div ng-controller="Controller2">
<div ng-hide="full_page_place_holder"></div>
</div>
【问题讨论】:
-
没有服务不会访问这两个不同范围的变量。相反,这两个控制器可以访问服务的同一个变量
-
@Vineet 好的。那么我将如何在视图中使用这些变量?
-
就像 Vineet 所说的那样,其想法是在服务中拥有数据模型,并在服务上提供必要的方法来更新数据(或将服务上的数据暴露给两个控制器)跨度>
-
这两者之间可以使用emit或者broadcast的方式进行通信。
-
这个问题已经有人回答了,提问前请好好搜索
标签: javascript angularjs controller angularjs-scope