我试图让Angular控制器使用一些JSON,如下所示,并调用" userService"它有一个名为" calculateAge"的函数。此函数将在提供的日期和各个JSON对象dateOfBirth之间进行差异以返回年龄。
我知道这可能不是实现这一目标的最佳方式,这只是一个说明性的例子。
我遇到的困难是调用userService.calculateAge并让它填充" age"每个JSON对象的值。理想情况下,我希望每次执行此函数返回的值,以便我可以更好地理解如何在Angular中调用函数。
我的直觉是我几乎在那里,也许需要使用for-each循环或类似的东西,但是我的Angular技能包括大约2天的学习!
示例数据:
[{
"firstName":"Bob", "lastName":"Smith", "dateOfBirth":"14-12-1988",
"email":"BSmith", "mobileNumber":null, "landLineNumber":null,
"isAdmin":false, "isModerator":false, "isEnabled":false, "isActivated":false
}, {
"firstName":"Jo", "lastName":"Smith", "dateOfBirth":"15-03-1990",
"email":"Smithy", "mobileNumber":null, "landLineNumber":null,
"isAdmin":false, "isModerator":false, "isEnabled":false, "isActivated":false
}]
我的AngularJS控制器和服务
angular.module("UserApp", [])
.service('userService', function () {
return {
calculateAge: function (dateOfBirth) {
return "23"; //dummy age value here
}
};
})
.controller("listUsersController", ['$scope', '$http', 'userService', function ($scope, $http, userService) {
$http.get("/user/")
.success(function (data, status, headers, config) {
$scope.users = data;
var age = userService.calculateAge($scope.users.dateOfBirth);
$scope.users.age = age;
})
.error(function (data, status, headers, config) {
// log error
});
}] ...
答案 0 :(得分:1)
这与Angular
没有任何关系。
您希望在数据恢复后将每个user
发送到您的服务后进行循环。这样,您可以在第一次循环时添加新属性。
.success(function (data, status, headers, config) {
$scope.users = data;
for (var i = $scope.users.length - 1; i >= 0; i--) {
$scope.users[i].age = userService.calculateAge($scope.users[i].dateOfBirth);
};
})