AngularJS Number不是一个函数

时间:2014-06-16 14:16:02

标签: angularjs

我试图将我知道的输出包装起来没有任何空格(它是一个电子邮件地址)。我正在使用我们已经拥有的功能。它的作用是获取一个字符串和一个包装长度,并在每次看到该长度时剪切该字符串并插入一个br标记。

之前它是一个常规的javascript函数,所以我认为它的工作方式和角度函数一样好。问题是它认为"数字不是一个功能"当我尝试使用它时。

$scope.data = {
                str1:"reallyreallylongstringohwowthisislongwhyarenttherespacesjeezcanthisstringgetanylongerohithinkitsdonenow",
                str2:"thisstringisntthatlong",
                str3:"alrightthisoneslongagainreallyreallyreallyreallyreallyreallyreallyreallyreallylong"
}

$scope.wrapText = function(strText, wrappedLength){
    var outStr;
    if(strText!=null){
        var str = strText.trim();

        if(str.length()<wrappedLength)
        {
            return strText;
        }
        else
        {
            outStr = str;
            var temp = outStr.split("(?<=\\G.{"+wrappedLength+"})");
            outStr="";
            for(var i = 0; i<temp.length;i++){
                temp[i]+="<br>";
                outStr+=temp[i];
            }
            return outStr;
        }
    }
    else
        return strText;      
};

并在html页面上:

{{wrapText(data.str1, 50)}}<br>
{{wrapText(data.str2, 50)}}<br>
{{wrapText(data.str3, 50)}}<br>

我得到的输出是&#34;未定义&#34;对于每一个,错误消息是this one

我也为此创建了fiddle

我错过了什么吗?我不知道我在哪里尝试使用数字作为函数...真的很困惑......

我发现此错误消息的所有其他内容都与人们尝试使用角色的特殊事物有关...我只是尝试使用基本功能......

1 个答案:

答案 0 :(得分:2)

length不是函数。

替换

    if(str.length() < wrappedLength)
        {
            return strText;
        }

使用

    if(str.length<wrappedLength)
        {
            return strText;
        }