我在controller1中定义了一个函数,并希望在controller2中使用它。当我$scope.functionName()
甚至$rootScope.functionName()
时,我收到此错误
TypeError:$ scope.functionName()不是函数
它在controller1中工作得非常好,但正如预期的那样在controller2中没有。我不想将现有函数复制并粘贴到controller2中以使用它。它应该是可重复使用的。
答案 0 :(得分:0)
创建服务或工厂并将功能放在那里。接下来,让两个控制器通过将它注入两个控制器来使用服务/工厂。
答案 1 :(得分:0)
使用事件($ on,$ broadcast和$ emit)与两个控制器进行通信。
语法:
$ $范围广播。(" MyEvent",数据); 。$ $范围发射(" MyEvent",数据);
$ scope。$ on(" MyEvent",function(evt,data){ //处理程序代码在这里}); 希望它有所帮助。