Javascript 语法错误:Token'';意外,在表达式[]的第4列处应为[:],从[}}]开始

Javascript 语法错误:Token'';意外,在表达式[]的第4列处应为[:],从[}}]开始,javascript,angularjs,html,mocha.js,Javascript,Angularjs,Html,Mocha.js,我正在使用Mocha为一个指令编写一个测试,但不断获取语法错误标记是意外的 这就是确切的信息: Error: [$parse:syntax] Syntax Error: Token 'noOfColumns' is unexpected, expecting [:] at column 4 of the expression [{{ noOfColumns }}] starting at [noOfColumns }}]. 这就是在beforeach方法中设置测试的方式 var ele

我正在使用Mocha为一个指令编写一个测试,但不断获取语法错误标记是意外的

这就是确切的信息:

Error: [$parse:syntax] Syntax Error: Token 'noOfColumns' is unexpected, expecting [:] at column 4 of the expression [{{ noOfColumns }}] starting at [noOfColumns }}].
这就是在beforeach方法中设置测试的方式

    var element, scope;

    beforeEach(inject(function (_$rootScope_, _$compile_) {

        scope = _$rootScope_.$new();

        element = angular.element('<programme-grid source="pageItem" no-of-columns="{{ noOfColumns }}" promo-image="{{ promoImage }}" limit="{{ limit }}" template="programmeGrid" />');

        scope.source = { test: "test" };
        scope.noOfColumns = "3";
        scope.promoImage = "true";
        scope.limit = "12";
        element = _$compile_(element)(scope);
        scope.$digest();
    }));
我试图解决这个问题已经有一段时间了,但一事无成。导致此错误的原因是什么?如何修复


如果我将“noOfColumns:'=”、“noOfColumns:'@”替换为“noOfColumns:'@”,这可以修复noOfColumns,但是下一个作用域变量“promoImage”将中断,该值必须是bool。

如果需要保持
'='
,则必须调整模板:

 '<programme-grid source="pageItem" no-of-columns="noOfColumns" promo-image="promoImage" limit="limit" template="programmeGrid" />'
“”
查看此项了解更多信息:


我也不明白你为什么会有这样的问题:
template=“programmeGrid”
,我想你也可以删除它

我已经按照建议修改了我的模板。现在这个测试:它(“应该设置列数”,函数(){expect(element.attr('no-of-columns')).to.equal('3');});返回断言错误:预期未定义为等于“3”
 '<programme-grid source="pageItem" no-of-columns="noOfColumns" promo-image="promoImage" limit="limit" template="programmeGrid" />'