4

所以我正在使用 1.20 rc2 并尝试实现一个指令:

var directives = angular.module('directives', ['controllers']);

directives.directive("drink", function()
{
return 
{
    template: '<div>{{flavor}}</div>',
    link: function(scope){
        scope.flavor = "cherry";
    }
}
});

该指令在主 JS 文件中被调用

 var comsumerApp = angular.module('comsumerApp', ['ngRoute','controllers', 'services', 'directives']);

所有控制器都像服务一样工作,但是在尝试这样做时出现此错误:

“未捕获的语法错误:意外的令牌:”

然后我得到

$injector:modulerr 错误。

注释掉“drink”指令会停止这个错误,所以很明显它与 : 或其他东西有关。

谁能阐明这个问题,我完全迷路了。

谢谢。

4

1 回答 1

12

尝试删除左括号前的换行符:

return 
{
    template: '<div>{{flavor}}</div>',
    link: function(scope){
        scope.flavor = "cherry";
    }
}

对此:

return {
    template: '<div>{{flavor}}</div>',
    link: function(scope){
        scope.flavor = "cherry";
    }
}

这可能是由于,所以您的浏览器在之后automatic semicolon insertion插入了一个,因为它认为您只是错过了它..;return

于 2013-09-14T09:37:06.800 回答