带有自定义“过滤器”的AngularJS表达式?

时间:2016-02-15 12:47:14

标签: angularjs expression

我正在使用GET加载一些用户个人资料数据,如此 -

  

MainController.js

   $http({
        method: 'GET',
        url: config.serverUrl + '/profile'
    }).then(function successCallback(response) {
        $scope.userdata = response.data.message.user;
    }, function errorCallback(response) {
         toastr.error('Something is wrong.');
    });
  

服务器响应

{
    "success": true,
    "message": {
        "user": {
            "id": 36,
            "email": "user@gmail.com",
            "name": "Rusty Rittenhouse"
        }
    }
}

现在,我使用以下表达式来显示用户名:

{{ userdata.name }} -> inputs "Rusty Rittenhouse"

我怎么才能只显示“Rusty”?通常我会使用split,但由于我是棱角分明的新手,我不知道什么是最好和最巧妙的解决方案。

1 个答案:

答案 0 :(得分:1)

您可以编写custom filter来执行此操作:

angular.module('myApp', []).filter('firstName', function() {
    return function(input) {
        return input.split(' ')[0];
    };
});

并像这样使用它:

{{ userdata.name | firstName }}

甚至更好:

<div/span ng-bind="userdata.name | firstName"></div/span>