首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在使用ng-html2js预处理我的AngularJS模板时,我会得到一个Lexer错误?

为什么在使用ng-html2js预处理我的AngularJS模板时,我会得到一个Lexer错误?
EN

Stack Overflow用户
提问于 2015-11-06 09:17:08
回答 1查看 397关注 0票数 1

我正在尝试使用Karma为AngularJS指令编写单元测试。为了能够在测试中使用指令的模板,我使用了karma-ng-html2js-预处理程序

对于下面的模板HTML,我在单元测试中得到了一个Lexer错误消息,但是在实际系统中,一切都很好。

代码语言:javascript
复制
<div class="test"
    ng-style="{width: vm.width,
    height: vm.height,
    'margin-left': vm.x,
    'margin-top': vm.y}">
</div>

错误消息:

错误:$parse:lexerr词法错误:表达式{ vm.width,\n‘+’高度: vm.height,\n‘+’\\‘边距\’左‘:vm.x,\n’+‘\\’边距-顶\‘:vm.y}中列17-17 []处的下一个字符。

这是预处理器中的一个bug,还是我的表达式有问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-08 18:07:32

我也遇到了类似的问题,但我没有找到解决办法。尽管如此,我还是找到了一个避免它的方法。

我认为问题在于如何使用单引号('),当ng-html2js预处理模板使用\'转义单引号时。

因此,在您的情况下,您需要避免在ng-style值中使用引号。即通过在控制器或其他地方为其定义范围:

代码语言:javascript
复制
$scope.mystyle = {
    width: vm.width,
    height: vm.height,
    'margin-left': vm.x,
    'margin-top': vm.y
}

然后在旅游属性中使用它:

代码语言:javascript
复制
<div class="test" ng-style="mystyle"></div>

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33563247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档