簡體   English   中英

angularjs:指令的訪問控制器

[英]angularjs: access controller of directive

我正在對指令之一進行單元測試。 它的基本結構是這樣的

angular.module('MyApp')
.directive('barFoo', function () {
    return {
        restrict: 'E',
        scope: {},
        controller: function ($scope, $element) { 
              this.checkSomething = function() { .... }
        },
        link: function(scope, element) { .... }
    }
});

在單元測試中,我想測試功能“ checkSomething”,因此我嘗試了

var element = $compile('<barFoo></barFoo>')(scope);
var controller = element.controller()
...

但是,控制器未定義。 是否可以訪問指令的控制器?

膠水是你的范圍,所以你可以做

controller: function ($scope, $element) { 
  this.checkSomething = function() { .... }
  $scope.controller = this;                
},

但是我認為最好將每個功能都附加到范圍

controller: function ($scope, $element) { 
  $scope.checkSomething = function() { .... }
},

然后它

var element = $compile('<barFoo></barFoo>')(scope);
var checksomthingResult = scope.checkSomething ()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM