gpt4 book ai didi

json - 使用 AngularJS 获取 JSON 数据并在返回对象上添加方法

转载 作者:行者123 更新时间:2023-12-04 04:30:49 25 4
gpt4 key购买 nike

我需要使用 Angular 从服务器获取一些 JSON 数据。比方说用户数据。我创建了这样的服务:

app.service('User', function($http) {
retrun $http({method: 'GET', url:'/current_user'});
});

在我的 Controller 中:
app.controller('SomeCtrl', function($scope, User) {
User.success(function(data) {
$scope.user = data;
});
});

这很好用,但是如果我想向用户添加一些方法怎么办?例如在 View 中我想做 {{user.isAdmin()}} .这是正确的方法吗?我在哪里可以添加这些方法?

最佳答案

如果您希望您的服务始终使用此方法返回一个对象,请执行以下操作:

app.service('User', function($http) {
return $http({method: 'GET', url:'/current_user'}).
then(function(response) {
response.data.isAdmin = function() { return true; };
return response.data;
});
});

现在,任何引用此 promise 并使用 .then() 的 future 代码都将检索新对象。查看 Promise 文档以获取更多信息。

http://docs.angularjs.org/api/ng .$q

请记住,通过在 httpPromise 上使用“then”,它将被转换为正常的 Promise。您不再拥有“成功”和“错误”的便捷方法。

使用构造函数为您返回的对象创建一个类可能是更好的做法,该构造函数接受数据对象并分配适当的属性(或扩展实例)。这样你就可以简单地做类似的事情
return new User(val);

你会得到你想要的所有方法(带有原型(prototype)等)。

关于json - 使用 AngularJS 获取 JSON 数据并在返回对象上添加方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19298439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com