Angular - 自定义过滤器在指令内不起作用

时间:2015-12-01 15:44:45

标签: javascript angularjs

我有一个简单的过滤器,它只是将一些字符串替换为另一个字符串(更方便用户)

看起来像:

historyApp.filter('zeroKiller', function () {
    return function (text) {
        if (text==="0" || text==="" || text==="0000-00-00") text = "Unknown"
        return text;
    };
});

此过滤器在我的index.html文件中正常工作,但是我将一些附加的HTML文件作为指令

注入

这是指令的样子:

historyApp.directive('caseDetail', function() {
    return {
        restrict: 'EA',
        templateUrl: '../templates/caseDetail.html'
    };
});

这就是HTML中的方式

   <tr ng-if="toggle" ng-repeat-end case-detail></tr>

最后但并非最不重要的是我的指令HTML页面:

    <td></td>
    <td colspan="2">
        Creation date of case<br />
        <strong>{{case.date_created | limitTo:dateLimit}}</strong><br />
        Total loss <br />
        <strong>{{case.totalloss | zeroKiller}}</strong><br />
        VIN <br />
        <strong>{{case.vin}}</strong><br />
        Vehicle <br />
        <strong>{{case.manufacturer}} {{case.model}} {{case.submodel}}</strong><br />
        AudaIN used<br />
        <strong>{{case.audavin_triggered | zeroKiller}}</strong><br />
        Accident date <br />
        <strong>{{case.accident_date | limitTo:dateLimit | zeroKiller}}</strong><br />
        Vehicle registration date <br />
        <strong>{{case.registration_date | limitTo:dateLimit | zeroKiller}}</strong><br />
        Manufactoring year <br />
        <strong>{{case.manufacturing_year | zeroKiller}}</strong>
    </td>

正如您所看到的,我在这里多次使用过滤器,但它没有运行。 它基本上只显示0000-00-00或空字符串 首先我认为问题出现在if / else语句中,但是当我使用此过滤器

时,我总是尝试控制日志
historyApp.filter('zeroKiller', function () {
    return function (text) {
        if (text==="0" || text==="" || text==="0000-00-00" || text===null || text===false) {
            var previousText = text;
            text ="Unknown";
            console.log("went in for "+previousText);
        }
        return text;
    };
});

它仅适用于主页面的过滤结果。我觉得它看起来像过滤器没有在指令中工作。 我真的希望这会是一个非常愚蠢的事情,但我无法想象出问题出在哪里。

有角度经验的人可以提出一些建议吗? 感谢

0 个答案:

没有答案