簡體   English   中英

如何在ng-bind上的AngularJS中精確使用過濾器?

[英]How can use a filter in my AngularJS precisely on an ng-bind?

我試圖使用這個簡單的過濾器:

App.filter('MyCutFilter', function ()
{
    return function(input)
    {
        return input.replace(/^.*[\\\/]/, '');
    };
})

在這樣的ng-repeat元素上:

<tr ng-repeat="jf in ctrl.Files" class="tablerow">
    <td><span ng-bind="jf.id"></span></td>
    <td><span class="filename" ng-bind="jf.FileName | MyCutFilter"></span></td>

但是我得到了以下錯誤:

錯誤:[$ injector:unpr]未知提供程序:CutFilterProvider <-CutFilter <-UpFileController

我該怎么做才能糾正它?

感謝您的協助。

看着錯誤,

錯誤:[$ injector:unpr]未知提供程序:CutFilterProvider <-CutFilter <-UpFileController

看來您正在嘗試將Cutfilter注入名為UpFileController的控制器中。 請從UpFileController刪除Cutfilter注入。

最后,我創建了自己的服務,像這樣:

'use strict';

App.factory('UtilsService', [function(nameTable){

    return {
               parseTheseNames: function ParseThesesNames(nameTable){
                    for (var i=0; i < nameTable.length; i++)
                    {
                        //console.log(d[i].upFileName); 
                        nameTable[i].upFileName = nameTable[i].upFileName.replace(/^.*[\\\/]/, '');
                        //console.log("obj " + d[i].upFileName);
                    }
            }
    };

}]);

我正在這樣使用它:

App.controller('FileController',[..., 'UtilsService',...,
function(..., UtilsService, ...){
.
.
.

function(d){
    UtilsService.parseTheseNames(d);
    self.upFiles = d;
}
.
.
.

我更改了我想要直接從回調中返回數據的內容,以便能夠更早地解析文件名。

感謝您的幫助和文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM