您的位置:首页 > 其它

Avalon属性ms-text的坑

2016-02-25 13:28 302 查看
Avalon是去哪儿网的一个MVVM框架.

前两天用jsoup写了个爬虫,可以根据CSDN用户名爬取该用户的所有文章.(Github:https://github.com/leoChaoGlut/spider4CSDN)

然后我先爬了自己的,把文章放到我自己的阿里云上.

然后在处理前端数据显示的时候出现一个这样的问题:

报错:"Unexcepted token }".

我就纳闷了.......

也没用eval之类的方法,怎么运行中才报js错误...

之后调试到avalon源码,还是没找到答案.

最后看了一下界面上显示的数据,发现少了一对大括号.{}.

很好奇,之后把ms-text去掉,换成{{el}}方式显示.

结果就没有报错!

之后再进行测试:<pre name="code" class="html"><div ms-repeat="arr">
{{el}}
</div>
<script>
var vm = avalon.define({
$id: "vm",
arr: ["{{}}", "{{}}}"],
})
</script>
//正常输出:
{{}}
{{}}}



<div ms-repeat="arr" ms-text="el">
</div>
<script>
var vm = avalon.define({
$id: "vm",
arr: ["{{}}", "{{}}}"],
})
</script>
//异常输出:
{{}}
}

原因:估计是因为avlaon解析ms-text这个attr的时候,是将整个值来解析,"{{}}"又是avalon的特殊符号,所以解析ms-text会变成"{{el}}" ,我的数据中存在{{}}负号,所以会导致avalon解析错误.
解决办法:在这种情况下,用{{el}}直接代替ms-text
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  avalon 爬虫