在AngularJS中过滤模板HTML

时间:2013-04-17 14:27:39

标签: javascript html angularjs

我想使用像i18n引擎这样的过滤器,这个过滤器工作正常。但是,如果我尝试在模板HTML中使用i18n过滤器(使用$ routeProvider),我就无法完成这项工作。

我的过滤器:

app.filter('i18n', function() {
    return function (input) {
        return $.i18n._(input);
    }
});

我的HTML模板:

<div class="fieldConfig first">
                <label id="label_topology" for="topology" class="labelMedio">{{"Topologia" | i18n}}:</label>                    
            </div>

我的控制器:

function WanCtrl($scope, $routParams, $i18n) {
    $scope.title = 'Wan';

};

我是否需要在控制器中添加更多内容才能在模板中使用我的过滤器?

谢谢!

2 个答案:

答案 0 :(得分:0)

要在任何地方使用过滤器(控制器,指令,服务等)而不仅仅是模板,您需要引用$filter service。在您的情况下,您在控制器的参数中引用了$i18n,这不是正确的方法。

相反,传入$filter,并使用i18n过滤器,如下所示:

function WanCtrl($scope, $routeParams, $filter) {
    $scope.title = $filter('i18n')('Wan');
}

有关详细说明,请参阅this StackOverflow post有关此事。

答案 1 :(得分:0)

像i18n引擎一样的过滤器?这在角度翻译中得到支持! :)

http://pascalprecht.github.io/angular-translate/