angularjs自定义指令不起作用

时间:2014-07-14 18:42:30

标签: angularjs directive

我将自定义属性添加到我的应用程序中,如此

'use strict';

myApp.directive('orientable', function () {
  return {
    restrict: 'A',
    link: function (scope, element, attrs, controller) {
      element.bind("load", function (e) {
        console.log('test');
        /* my code is here*/

      });

    }
  }
});

在我的视图中使用此添加

<div class="xyz" orientable></div>

但它没有调用链接功能,我做错了什么。

3 个答案:

答案 0 :(得分:0)

你的小提琴不起作用。

不知道你要做什么,但this one有效。

link函数上执行您想要的操作。

答案 1 :(得分:0)

正如兰特所说,你的小提琴坏了。它不是加载角度或它的依赖(饼干和动画)。另一方面,div没有load。只需将您的日志移出element.bind...

即可
var myApp = angular.module('myApp', []);

myApp.controller('myctrl', ['$scope','$rootScope',function($scope,$rootScope)
{
    //controller logic
}]);

myApp.directive('orientable',function () {       
    return {
        restrict:'A',
        link: function(scope, element, attrs, controller) {   
            console.log('yahan');               
            element.addClass("vertical");             
        }
    }
});

您还有restrict: 'E'元素名称,如<orientable></orientable>

您将其作为属性,因此您需要将restrict更改为A

您可以执行restrict: 'EA'并能够使用任一方法(属性或元素名称)。

答案 2 :(得分:0)

我遇到了同样的问题。最后我知道我们需要加载&#34;可定向&#34;作为ng-app的DI模块。我们需要添加这个&#34; orientable&#34;。