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



本质上,我希望它能工作:

myApp.directive('myDirective', function() {
     var someObj = {"shout": "Yodelayheehoo"};
     return {
          restrict: 'E',
          template: "<my-special-directive my-obj="someObj"></my-special-directive>"
     }
});

我希望mySpecialDirective接收myDirective中定义的对象,但它不是。

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

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

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>

最新更新