2016-12-15 5 views
0

Я видел это раньше, я пытаюсь реализовать функцию инкапсуляции, но это нарушает мою директиву. Без инкапсуляции он работает. Кто-нибудь сделал это раньше или кто-нибудь знает, почему это нарушает директиву?Как обернуть функцию инкапсуляции JS вокруг директивы

https://jsfiddle.net/ciderman/a0n9h0ar/1/

(function() { 
    myApp.directive('myPerfectDirective', function(){ 
    return{ 
     restrict: 'E', 
     scope: { 
     data: '=' 
     }, 
     template: '<p>my perrrrrrfeccct directivve</p>', 
     templateUrl: 'book-widget.html' 
    } 
    }); 
}); 
+3

я думаю, что проблема в том, что вы не вызвать функцию, она должна be '(function() {....})()' проверить, чтобы поместить последнюю скобку '()' –

ответ

2

Что вы говорите, называется IIFE (Сразу вызываемое выражение функции).

У вас есть часть права, проблема, поскольку Алехандро указал, что вам не хватает (), который будет вызывать функцию.

Так изменить код, чтобы выглядеть следующим образом:

(function() { 
    myApp.directive('myPerfectDirective', function(){ 
    return{ 
     restrict: 'E', 
     scope: { 
     data: '=' 
     }, 
     template: '<p>my perrrrrrfeccct directivve</p>', 
     templateUrl: 'book-widget.html' 
    } 
    }); 
})(); 

Для получения дополнительной информации о IIFE (произносится IIFY) смотрите здесь What is the (function() { })() construct in JavaScript?

+0

. Я думаю, что комментария было более чем достаточно: P, но если вы хотите пойти на rep, вы всегда можете объяснить далее true :) –

+0

@AlejandroVales Gotta достигают этого 1k вехи как-то: P – George

+0

AHAHHHHA lol !! вехи велики, но не единственное в этой жизни: P –

 Смежные вопросы

  • Нет связанных вопросов^_^