我有两个指令,我想将参数从一个指令传递给另一个指令。
示例:
指令1: -
app.directive('myDirective1', [function () {
return {
restrict : 'E',
templateUrl : 'templates/myDirective1.html',
link : function (scope, elem, attr) {
scope.items = 'myPara';
}
}]);
指令2: -
app.directive('myDirective2', [function () {
return {
restrict : 'E',
templateUrl : 'templates/myDirective2.html',
scope : {
items : '='
}
link : function (scope, elem, attr) {
//here i want 'myPara'
}
}]);
HTML: -
<my-directive1 items="items">
<my-directive2></my-directive2>
</my-directive1>
在上面的例子中,当我在Directive1中更改scope.items
的值时,它应该反映在directive2隔离范围(项目)上。现在我无法获得Directive2中的值。谁能帮我。感谢。
答案 0 :(得分:2)
有一个你在两个指令中注入的服务..
app.service('myService',function(){ return {myPara : undefined}})
现在将此服务添加到您的两个指令并使用myPara,如myService.myPara = bla
因为服务是单例,所以你的指令中都有相同的实例。
指令1:
app.directive('myDirective1', ['myService',function (myService) {
return {
restrict : 'E',
templateUrl : 'templates/myDirective1.html',
link : function (scope, elem, attr) {
scope.items = myService.myPara;
}
}]);
指令2
app.directive('myDirective2', ['myService',function (myService) {
return {
restrict : 'E',
templateUrl : 'templates/myDirective2.html',
scope : {
items : '='
}
link : function (scope, elem, attr) {
//here i want 'myPara'
myService.myPara // Here is your myPara
}
}]);