AngularJS:在严格模式之外尚不支持块范围的声明(let,const,function,class)

时间:2015-10-22 12:52:36

标签: javascript angularjs angularjs-directive

所以我有这个指令:

app.directive('customDropdown', function() {
    return {
        restrict: 'E',
        templateUrl: '/static/templates/directive_templates/customdropdown.html',
        link: function(scope, element, attrs) {
            console.log(attrs.custom-class);
        }
    }
})

标记:

<custom-dropdown custom-class="custom-select-menu">

</custom-dropdown>

但是,由于console.log(attrs.custom-class)我得到了问题中提到的错误。当我将custom-class更改为custom时,它就会消失。知道错误突然出现的原因吗?不能使用连字符?

2 个答案:

答案 0 :(得分:0)

attrs.custom-class custom-class不是javascript中的有效标识符。所以你有两个选择:

  • 将自定义类重命名为其他内容而不需要用于宣传。

  • 使用括号语法:attrs['custom-class']

答案 1 :(得分:0)

这意味着您必须通过在文件开头写入“use strict”或使用块范围声明的函数来声明严格模式。

function test(){
    "use strict";
    let a = 1;
}