2015-06-19 4 views
0

Мне нужно проверить методы с контроллера в директиве.Контроллер контроля доступа в угловой директиве

APP.angular.directive('miniCrud', function() { 

    return { 
     restrict: 'E', 
     require:"ngModel", 
     scope: { 
      miniCrudHeader: '@', 
      miniCrudConfig: '=', 
      modelValues : "=ngModel" 
     }, 
     templateUrl: 'templates/mini-crud.html', 
     controller: ['$scope', 'lodash', 'filterFilter', 
      function($scope, _, filterFilter){ 

       $scope.vm = { 
        getValue: function(item, index) { 
         var prop = $scope.miniCrudConfig.fields[index].name; 
         return item[prop]; 
        } 

       // some other methods 
       } 
      } 
     }] 
    }; 
}); 

Как я могу использовать $ scope.vm.getValue()?

ответ

0

Надеюсь, вы знаете, как проверить директиву. Поскольку ваша директива создает изолированную область действия, вы должны использовать функцию isolatedScope для объекта, возвращаемого angular.element.

Как только вы создадите элемент html-директивы в своем тесте, скомпилируйте его и привяжите его к области. Затем вы можете использовать скомпилированный элемент для получения изолированной области

var s = angular.element(compiledAndLinkedDOM).isolatedScope(); 
s.vm.getValue(); 
Смежные вопросы