angularjs1中ng-model中不能使用自定义的过滤器吗?
起因是由于ionic.bundle.js中有一段关于特殊符号&、<、>替换的代码,导致模块中正常的符号使用出现问题,为了不动框架代码(因为不知道会不会有其他未知的风险),所以写了过滤器让这三个符号正常使用。
框架中代码我也贴出来:
function encodeEntities(value) {
return value.
replace(/&/g, '&').
replace(SURROGATE_PAIR_REGEXP, function(value) {
var hi = value.charCodeAt(0);
var low = value.charCodeAt(1);
return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';';
}).
replace(NON_ALPHANUMERIC_REGEXP, function(value) {
return '&#' + value.charCodeAt(0) + ';';
}).
replace(/</g, '<').
replace(/>/g, '>');
}
这是我自己写的过滤器的代码:
.filter("replace",function () {
//替换成&
return function replace(str){
return str.replace(/&/g, '&').replace(/>/g, '>').replace(/</g, '<');
}
})
这是模块中同时使用ng-model和过滤器的代码:
<li class="basInfo_listItme" style="border-bottom:0;">
<textarea rows="3" class="modalTextArea" ng-model="$parent.modalInfo.wpmc|replace"></textarea>
</li>
运行后页面立马报错:
想要点击textarea修改里面的内容,发现无法修改也无法删除,控制台报错如下:
点开错误定位到框架文件:经查,问题缘由不在此处
在页面上其他地方使用无上述问题,完全正确:
<li class="basInfo_listItme">
<span><i style="color:red">*</i>品牌:</span>
<span>
<i ng-bind="pageParams.baseGoodsTrademark|replace|nullValue:''"></i>
</span>
</li>
上网搜了资料,没有能解决的方法,有没有大神有相关经验,诚心求教,非常感谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论