【问题标题】:AngularJS filter in controller控制器中的AngularJS过滤器
【发布时间】:2015-03-11 04:21:47
【问题描述】:

我有这个角度循环和控制器:

<li class="list-group-item" ng-repeat="post in posts | filter: post._creator = getCurrentUser"></li>

和控制器:

    $http.get('/api/posts').success(function(posts) {
        $scope.posts = posts;
        $scope.getCurrentUser = Auth.getCurrentUser()._id;
    });

可以在控制器中注入过滤器吗?

最佳做法是什么?

【问题讨论】:

  • 你的意思是使用$filter?
  • 你能详细一点吗,也许是一些例子?
  • 是的,你可以在 js 中使用过滤器。
  • $filter("yourFilterName")(argument)
  • 如何过滤参数中有 ._creator = loggedIn 用户的帖子,这是我不明白的部分

标签: angularjs node.js mongoose


【解决方案1】:

我创建了一个专用文件filers.js,并将过滤器注册码放入该文件中。

'use strict';

angular.module('ftFilters', [])
.filter('rub', function() {
    return function (value) {
        if (value === undefined || value === null){
            return 'не задана';
        }
        return value.toFixed(2).toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1 ").replace('.','<small>,') + '</small> руб';
    };
})
.filter('rudate', function($filter) {
    var angularDateFilter = $filter('date');
    return function(theDate) {
       return angularDateFilter(theDate, 'dd.MM.yy HH:mm:ss');
    }
});

那么您必须将此模块添加到您的应用程序的依赖项中,例如

'use strict';

// Init the application configuration module for AngularJS application
var ApplicationConfiguration = (function() {
        // Init module configuration options
        var applicationModuleName = 'ft';
        var applicationModuleVendorDependencies = ['ngResource', 'ngCookies',  'ngAnimate',  'ngTouch',  'ngSanitize',
        'ui.router', 'ui.bootstrap', 'ui.utils', 'vr.directives.slider', 'ya.treeview', 'ui.select', 'ftFilters' ];

        // Add a new vertical module
        var registerModule = function(moduleName) {
                // Create angular module
                angular.module(moduleName, []);

                // Add the module to the AngularJS configuration file
                angular.module(applicationModuleName).requires.push(moduleName);
        };

        return {
                applicationModuleName: applicationModuleName,
                applicationModuleVendorDependencies: applicationModuleVendorDependencies,
                registerModule: registerModule
        };
})();

之后你可以在任何地方使用它

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多