Javascript 角度指令中的linkFn不工作? var$directive=angular.module('myApp',[]); $directive.directive('chandanSingh',function(){ 返回{ 限制:'E', 编译:函数(元素、属性){ console.log(“这是complie”); }, 链接:函数(范围、元素、属性){ log(“这是链接”); }, 模板:“{{title}}”, 控制器:功能($scope){ $scope.title=“我的指令”; } }; });

Javascript 角度指令中的linkFn不工作? var$directive=angular.module('myApp',[]); $directive.directive('chandanSingh',function(){ 返回{ 限制:'E', 编译:函数(元素、属性){ console.log(“这是complie”); }, 链接:函数(范围、元素、属性){ log(“这是链接”); }, 模板:“{{title}}”, 控制器:功能($scope){ $scope.title=“我的指令”; } }; });,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,上面是我的指令和HTML指令的角度代码。我试图在使用compile时使用指令的“link:linkFn”。甚至可以对同一个指令同时使用compile和link吗 有人能帮我解决这个问题吗?要使它工作,我缺少什么?当使用编译函数时,它必须返回link函数。否则它将不起作用: var $directive = angular.module('myApp', []); $directive.directive('chandanSingh', function(){ return {

上面是我的指令和HTML指令的角度代码。我试图在使用compile时使用指令的“link:linkFn”。甚至可以对同一个指令同时使用compile和link吗


有人能帮我解决这个问题吗?要使它工作,我缺少什么?

当使用编译函数时,它必须返回link函数。否则它将不起作用:

var $directive = angular.module('myApp', []);
    $directive.directive('chandanSingh', function(){
      return {
          restrict: 'E',
         compile:function(element, attrs){
               console.log('This is complie');
         },
         link: function(scope, element, attrs){
              console.log('This is link');
         },
         template: '<h4>{{title}}</h4>',
         controller:function($scope){
               $scope.title = "My Directive";
         }
    };
});

<chandan-singh></chandan-singh>

嘿@Narretz链接函数中scope变量的作用域是什么?我的意思是,我正在更改范围变量标题,我在单击元素时在控制器中声明了该标题,但它没有显示任何更改。。?compile:function(element,attrs){console.log('this is compile');return function link(scope,element,attrs){element.on('click',function(){scope.title='My Directive 2 on click';});};}如果使用纯jquery/javascript事件处理程序,您必须告诉angular,在scope:scope.$apply(scope.title=“…”上发生了更改
     compile:function(element, attrs){
           console.log('This is complie');

           return function link(scope, element, attrs){
                console.log('This is link');
           },
     },