格式化数字时的角度插值错误

时间:2014-02-08 15:56:33

标签: angularjs angularjs-filter

我对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

有人能指出我正确的方向吗?提前谢谢。

1 个答案:

答案 0 :(得分:5)

而不是

if(typeof(tel) != undefined) {

只是做

if (tel) {

这会检查“truthyness”,未定义的tel不会通过此测试(当前代码允许未定义的值通过)

js有很多奇怪的不一致行为。以下是google for truthyness的最高链接:http://www.sitepoint.com/javascript-truthy-falsy/