2016-04-21 50 views
0

範圍,我有以下指令:定義內部指令

angular.module("app").directive("validation", validation); 

function validation() { 

    var validation = { 
    controller: controller, 
    link: link, 
    replace: false,  
    restrict: "A", 
    scope: { 
     phrase: "" 
    } 
    }; 

    return validation; 

    function controller(scope) { 
    scope.phrase = "hello"; 
    } 

    function link(scope, element, attributes) { } 

} 

當我應用它,我得到錯誤「無效分離範圍定義指令」。

我正在定義一個範圍,因爲我需要子指令來訪問scope.phrase。

我在做什麼錯?

回答

2

,則應指定變量應該是哪種類型的分離範圍:

嘗試:

scope: { 
    phrase: "=" 
} 

我建議有一個在這裏讀到:https://github.com/angular/angular.js/wiki/Understanding-Scopes#directives

+0

然後我得到未知提供商:scopeProvider < - 因爲我有控制器(範圍)。我需要的是設置scope.errors = attributes.errors。我怎樣才能做到這一點? –

+0

範圍不是一個Angular服務,你可能意指'$ scope',你需要在使用之前注入它。 –

+0

請閱讀此處瞭解如何向組件注入服務:https://docs.angularjs.org/api/auto/service/$injector –