Angularjs 如何从Angular指令获取数据

Angularjs 如何从Angular指令获取数据,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我希望有人能帮我举个小例子,因为angular快把我逼疯了:( 我第一次制作的公式应该遵循以下结构: 角度应用程序 主控制器 ---->smallController1 -------->其他元素 ---->smallController2 -------->其他元素 ---->指令1(实例1) ---->另一个小型控制器 ---->指令1(实例2) Directive1接收许多属性,每个实例将允许选择许多选项,用户交互的结果应存储在一个对象中,并且应分别从每个实例的mainController

我希望有人能帮我举个小例子,因为angular快把我逼疯了:(

我第一次制作的公式应该遵循以下结构: 角度应用程序

主控制器
---->smallController1
-------->其他元素
---->smallController2
-------->其他元素
---->指令1(实例1)
---->另一个小型控制器
---->指令1(实例2)

Directive1接收许多属性,每个实例将允许选择许多选项,用户交互的结果应存储在一个对象中,并且应分别从每个实例的mainController访问该对象

有人有这样的例子吗

提前感谢,,
John

使用emit将数据发送到父控制器。 它可能是接收器,因为正在侦听事件。 关于发射和广播。 在子控制器或指令中,请使用:

$scope.$emit('myEvent',object)

这会将对象发送到所有父控制器。 在父控制器中使用:

$scope.$on('myEvent',function(event,obj){console.log(obj);})


要侦听发射的对象。

请尝试此代码,它可能会帮助您:

var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.name='World';
$scope.masterData=[
{
条目:“不知道”
},
{
条目:“东西”
}
]
})
应用指令(“容器”,功能(){
返回{
替换:正确,
范围:{
数据:'=',
特色:'@'
},
链接:功能(范围){
scope.updateData=函数(){
scope.data.entry=scope.speciality;
}
},
模板:“{data.entry}}update”
}
});
以及模板:

  <body ng-controller="MainCtrl">
    <p>Master data {{masterData | json}}</p>
    <div vessel data="masterData[0]" speciality="eggs"></div>
    <div vessel data="masterData[1]" speciality="bacon"></div>
  </body>

主数据{{masterData | json}


因此,每个指令都有单独的数据模型,根据用户输入进行更新,以满足您的需求。对吗?

从指令中获取数据的最佳方法是将模型附加到指令的自作用域

var-app=angular.module('app',[]);
应用控制器(“主控制器”,
[
“$scope”,
职能($范围){
$scope.myObj=“初始值”;
}
]);
应用程序指令('dirName'[
函数(){
返回{
限制:“A”,
范围:{
obj:“=ngModel”
},
链接:函数(范围、元素、属性){
scope.obj=attrs.newValue;
}
};
}
]);

JS-Bin

这是一个相当模糊的问题,你能更具体一点吗?你想从mainController访问Directive1中的数据吗?在不同的情况下,有很多方法可以做到这一点
  <body ng-controller="MainCtrl">
    <p>Master data {{masterData | json}}</p>
    <div vessel data="masterData[0]" speciality="eggs"></div>
    <div vessel data="masterData[1]" speciality="bacon"></div>
  </body>