如何在指令模板中的元素内使用指令中声明的var?

时间:2015-02-20 09:55:58

标签: angularjs angularjs-directive attributes angularjs-scope

基本上,我希望这可以工作:

myApp.directive('myDirective', function() {
     var someObj = {"shout": "Yodelayheehoo"};

     return {
          restrict: 'E',
          template: "<my-special-directive my-obj="someObj"></my-special-directive>"
     }
});

我希望mySpecialDirective接收myDirective中定义的对象,但事实并非如此。

使这项工作的语法(如果有的话)是什么?

1 个答案:

答案 0 :(得分:0)

当你创建一个指令时,你可以创建一个链接函数(Make指令的所有逻辑),该函数的第一个参数是指令的范围。然后,您需要将变量添加到该范围内以访问指令内部。

var app = angular.module('asd', []);

app.directive('myDirective', function() {
     var someObj = {"shout": "Yodelayheehoo"};

     return {
          restrict: 'E',
          template: "<my-special-directive my-obj='someObj'>{{someObj}}</my-special-directive>",
          link:function(scope) {
            scope.someObj = someObj;
          }
          
     }
});
    <script data-require="angular.js@1.3.x" src="https://code.angularjs.org/1.3.13/angular.js" data-semver="1.3.13"></script>
 
  <body ng-app="asd">
    <my-directive></my-directive>
  </body>