Angularjs指令无效“意外令牌”

时间:2013-09-14 08:56:55

标签: javascript angularjs angularjs-directive

所以我正在使用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']);

所有控制器都像服务一样工作但是在尝试这样做时我得到了这个错误:

  

“未捕获的SyntaxError:意外的令牌:”

然后我得到了

  

$ injector:modulerr错误。

注释掉“drink”指令会停止此错误,所以很明显它与:或某事有关。

任何人都可以对这个问题发光,我完全迷失了。

感谢。

1 个答案:

答案 0 :(得分: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,因为它认为您错过了它。