Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度1.5组件与子组件的特定实例通信?_Javascript_Angularjs - Fatal编程技术网

Javascript 角度1.5组件与子组件的特定实例通信?

Javascript 角度1.5组件与子组件的特定实例通信?,javascript,angularjs,Javascript,Angularjs,我对Angular很陌生,有一个特殊的情况我不知道如何建模 我有一个主要组件: angular .module('synthApp') .component('main', { templateUrl: 'app/components/main.template.html', controller: MainController }); function MainController() { ... } <div> ... <

我对Angular很陌生,有一个特殊的情况我不知道如何建模

我有一个
主要
组件:

angular
  .module('synthApp')
  .component('main', {
    templateUrl: 'app/components/main.template.html',
    controller: MainController
  });

function MainController() {
  ...
}
<div>
    ...
    <map name="foo">
    ...
    <map name="bar">
    ...
</div>
它的
main.template.html
文件包含我拥有的另一个组件
map
组件的两个实例:

angular
  .module('synthApp')
  .component('main', {
    templateUrl: 'app/components/main.template.html',
    controller: MainController
  });

function MainController() {
  ...
}
<div>
    ...
    <map name="foo">
    ...
    <map name="bar">
    ...
</div>
main
controller的方法需要在某些点为foo
map
调用
addMarker
,在其他点为
bar
map调用
addMarker


父组件与子组件的特定实例通信的最佳实践是什么?

我会使用服务设置发布/订阅,或者在父组件上执行$rootScope.$emit('nameofinance',message) 子实例将通过$rootScope.$on('nameOfInstance',function(message){})设置侦听器


嗯,很有趣。。。它很简单,但我想知道它有多大的可扩展性。。。因为我需要将事件名称绑定到
addMarker
removeMarkers
,以及我将来添加的任何方法。如果使用通道模式,它会有一定的伸缩性。每个主题、用户、产品都可以有一个频道。Jsbin举个例子,
 bindings: {
      name: '=',
      eventName : '@'
    }

function MapController(){
   var $ctrl = this;
   $rootScope.$on($ctrl.eventName, function(dataFromParent) {
     // do stuff based on message
   })
}