在Angular.js中获取两个相同控制器的Scope

时间:2015-01-02 07:35:09

标签: angularjs

我刚刚开始使用Angular,使用它非常好,我只是面对控制器的范围。

我有两个文件

1- header.html

2-dashboard.html

我在header.html

中添加了dashboard.html

我正在使用这些文件执行两项任务。 我必须使用位于ng-click="viewAll()" CategoryCtlr控制器下的header.html,并且在执行事件后我必须在dashboard.html的元素中显示结果

<div class="row articleAll"></div>

如果我在header.html中使用此元素,它的工作正常,但不在dashboard.html

我在两个文件中注入了ng-controller="CategoryCtlr"

任何人都可以帮我处理这项任务,

我会很感激。

谢谢

1 个答案:

答案 0 :(得分:1)

尝试创建两个控制器,一个用于header.html,另一个用于dashboard.html。 让我们说A_Cntrl用于仪表板而B_Cntrl用于header.html

Now as you are injecting header.html inside dashboard.html, A_Cntrl will be the parent controller for B_Cntrl

Use $emit() and $on concept of event notification from child to parent.

Now in viewAll() method,to notify the parent's controller, you put the following code:
$scope.$emit("Notify_To_Parent", $scope.flag(lets assume, change it as per your need);

In the parent controller, put the following code:
$scope.$on("Notify_To_Parent", function(event, state){
    // state is the value which is coming from child's controller
});

试试这个,它会对你有帮助。