繁体   English   中英

使用underscore.js时angular.js过滤器中的插值错误

[英]Interpolation error in angular.js filter when using underscore.js

我目前在我的angular.js过滤器之一中遇到错误。
它不会阻止页面的功能,但是您可以看到它的加载速度比平常慢,并且在控制台中引发以下错误:

错误:[$ interpolate:interr]无法插值:
{{俱乐部| 相遇:match.heimmannschaftsId:match.auswaertsmannschaftsId}}
TypeError:_.findWhere(...)未定义

filter.js:

angular.module("terminApp").filter("encounter", function() {

    return function(clubs, home, guest) {
        return _.findWhere(clubs, {id: home}).kurzschreibweise + " : " + _.findWhere(clubs, {id: guest}).kurzschreibweise;
    }

});

index.html:

<body data-ng-app="terminApp">  
    <div class="news-list-box span-4-12 stadienbox active" style="width: 308px; margin-left:20px;" data-ng-controller="TerminCtrl" data-ng-init="init('DFL-CLU-00000B')">

        <div id="countdown" class="news-2-3 countdown"></div>       

        <div class="teaser d-teaser">

            <div class="span-4-12 stadienbox" data-ng-repeat="match in nextMatches">
                <div class="news-2-3">
                    <div class="line1">
                        <div class="col30">
                            {{ match.wettbewerbsId === "DFL-COM-000001" ? "Bundesliga" : "2. Bundesliga" }}
                        </div>
                        <br>
                        <div class="col10">
                            {{ match.geplanteAnstosszeit | date:"dd.MM.yyyy '|' HH:mm" }}
                        </div>
                        <br>
                        <div class="col20">
                            {{ clubs | encounter:match.heimmannschaftsId:match.auswaertsmannschaftsId }}
                        </div>
                    </div>
                </div>
            </div>

        </div>

    </div>      
</body>

我猜想这与在调用过滤器时未正确加载下划线有关,但是如何确保在调用过滤器之前已将其加载? 我是否必须将此功能外包给服务,还是有解决此问题的更好方法?

好吧,似乎有一个非常简单的解决方案。 只需为俱乐部添加一个空支票:

return function(clubs, home, guest) {
    if (clubs) {
        return _.findWhere(clubs, {id: home}).kurzschreibweise + " : " + _.findWhere(clubs, {id: guest}).kurzschreibweise;
    }
}

错误消息应该说值本身是未定义的,而不是方法调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM