自定义指令在Angular js中不起作用

时间:2013-11-27 14:15:57

标签: javascript html angularjs

在运行以下代码时,应该在此处显示的名为focussed的按钮上聚焦(如光标在按钮上)。但它不起作用

enter image description here

Html代码:

<body ng-controller="TextController">
 <button ng-click="clickUnfocused()">Not focussed</button>
 <button ngbk-focus ng-click="clickfocused()">focussed</button>
 <div>{{message.text}}</div>
</body>

Javascript代码:

var kitkatmodule = angular.module('Kitkat', ['directives']);

    kitkatmodule.controller('TextController',function($scope) {

         $scope.message = {text:"nothin clicked"};

         $scope.clickUnfocused = function() {
         $scope.message.text = "Click Unfocused";
         }
         $scope.clickfocused = function() {
         $scope.message.text = "clickfocused";
         }
    });

    kitkatmodule.directive('ngbkFocus', function(){
        return  {
            link : function(scope, element, attrs, controller) {
                element[0].focus();
            }
        };
    });

如何解决此问题

3 个答案:

答案 0 :(得分:0)

除非您打算稍后为该指令注入新模块,否则不需要将“指令”注入模块中。您的控制器也应该以类似于此示例的方式声明:

function TextController($scope) {
    $scope.name = 'Superhero';
}

答案 1 :(得分:0)

在使用指令时,我们需要添加angular-resource.js文件

答案 2 :(得分:0)

在声明模块时,只需删除已包含的“directives”即可使代码正常工作。还要注意你已申报ng-App。我没有包含angular-resources.js,但它仍适用于我。刚刚加入了angular.min.js