在 Angular 内为多个 JSON 对象调用函数
Calling functions within Angular for multiple JSON objects
我正在尝试让 Angular 控制器消耗一些 JSON,如下所示,并调用 "userService",它有一个名为 "calculateAge" 的函数。此函数将在提供的日期和个人 JSON 对象 dateOfBirth 与 return 年龄之间进行比较。
我知道这可能不是实现此目标的最佳方式,这只是一个说明性示例。
我遇到的困难是调用 userService.calculateAge 并让它在每个 JSON 对象上填充一个 "age" 值。理想情况下,我每次都希望函数 returns 的值来执行此操作,以便我可以更好地理解如何在 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
});
}] ...
这与 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);
};
})
我正在尝试让 Angular 控制器消耗一些 JSON,如下所示,并调用 "userService",它有一个名为 "calculateAge" 的函数。此函数将在提供的日期和个人 JSON 对象 dateOfBirth 与 return 年龄之间进行比较。
我知道这可能不是实现此目标的最佳方式,这只是一个说明性示例。
我遇到的困难是调用 userService.calculateAge 并让它在每个 JSON 对象上填充一个 "age" 值。理想情况下,我每次都希望函数 returns 的值来执行此操作,以便我可以更好地理解如何在 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
});
}] ...
这与 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);
};
})