我有一个包含2个控制器的网页(使用AngularJS)。第一个管理导航栏和页面标题。第二个控制器管理消息(或页面的任何其他部分)。什么是"信号"的最佳方式?第一个用给定字符串更新页面标题的控制器?
答案 0 :(得分:2)
使用事件消息,点击导航栏上的按钮会触发emit(),在第二个控制器中使用on()注册的事件处理程序将响应触发器。
$ rootScope。$ emit()和$ rootScope。$ on()
Working with $scope.$emit and $scope.$on
请注意,它在rootscope上调用emit / on,所有孩子都可以将其发布到pubsub上。
答案 1 :(得分:1)
我过去所做的是使用控制器作为语法。然后我可以将第一个控制器标题对象传递到第二个控制器并在那里更新它而无需广播消息。
Controller1 as c1
Controller2 as c2
c2.functionThatUpdatesC1(c1.title, data)
this.functionThatUpdatesC1 = function (c1Object, data) {
//Do something here
c1Object = newValue;
};