2016-04-21 64 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 –