我对Angular很新,可能会遗漏一些明显的东西,但我有以下自定义过滤器:
propertyApp.filter('telLink', function() {
return function(tel) {
// To avoid interpolating error
if(typeof(tel) != undefined) {
// Remove any leading zeros
if(tel.charAt(0) === '0') {
tel = tel.substr(1);
}
tel = "44" + tel;
// Remove any internal whiespace
return tel.replace(" ", "");
}
}
});
当我在视图中使用它时,我得到了这个:
Can't interpolate: tel:{{property.agent_phone | telLink}}
TypeError: Cannot call method 'charAt' of undefined
有人能指出我正确的方向吗?提前谢谢。
答案 0 :(得分:5)
而不是
if(typeof(tel) != undefined) {
只是做
if (tel) {
这会检查“truthyness”,未定义的tel不会通过此测试(当前代码允许未定义的值通过)
js有很多奇怪的不一致行为。以下是google for truthyness的最高链接:http://www.sitepoint.com/javascript-truthy-falsy/