ngResource已经似乎很简单,以落实事情...
使用Restangular over ngResource有什么优点/缺点?
1.1.3 $resource将返回promises并且可以使用最新的PR提交来实现.是否会提供未来支持$resource以支持Restangular所做的其他动词?如果发生这种情况,Restangular似乎会消失并变得不可靠.
我在我的角应用中定义了以下服务:
services.factory('MyService', ['Restangular', function (Restangular) {
return {
events : { loading : true },
retrieveQuotes : function() {
return Restangular.all('quotes').getList().then(function() {
return { hello: 'World' };
});
}
};
}]);
Run Code Online (Sandbox Code Playgroud)
我正在编写以下规范来测试它:
describe("MyService", function () {
beforeEach(module('MyApp'));
beforeEach(module("restangular"));
var $httpBackend, Restangular, ms;
beforeEach(inject(function (_$httpBackend_, _Restangular_, MyService) {
ms = MyService;
$httpBackend = _$httpBackend_;
Restangular = _Restangular_;
}));
it("retrieveQuotes should be defined", function () {
expect(ms.retrieveQuotes).toBeDefined();
});
it("retrieveQuotes should return array of quotes", function () {
$httpBackend.whenGET("internalapi/quotes").respond({ hello: 'World' });
ms.retrieveQuotes(); …Run Code Online (Sandbox Code Playgroud) 这两者有什么区别?两者似乎都对/ users进行了GET并检索它们.
Restangular.one('users').getList().then(function(users) {
// do something with users
});
Restangular.all('users').getList().then(function(users) {
// do something with users
});
Run Code Online (Sandbox Code Playgroud)
我知道你可以做一个('用户',123),它将检索/ users/123,但没有第二个参数,它似乎是相同的事情.为什么不在这种情况下只有一种方法?
关于Angular的一个特性和复杂性的一点是,它对于如何与RESTful API进行交互并不是很自以为是.我知道有关资源,Restangular以及您自己推出的各种想法.
在一个拥有大量资源(包括各种嵌套)的复杂应用程序中,有理由认为 Restangular优于$ resource; 出于类似的原因,Restangular比滚动自己更好.
直到最近我才看到的一个解决方案是JSData及其AngularJS(repo)的包装器.从Github(~900)的收藏数量来看,如果不使用它,它有相当多的人对它至少感兴趣.它只是Restangular在Github(5k +)上的一小部分,但仍然很重要.
对于那些同时使用Restangular和JSData的人来说,你对它们的比较有什么看法(优点/缺点;目的,可靠性等方面的差异;从文档中可能不太明显的事情)?要使这个问题保持开放,请坚持事实而不是意见.
我从以下内容中得到的印象如下:
javascript angularjs angular-resource restangular angular-data
我必须通过API中的get参数发送一个过滤器数组,如下所示:
/myList?filters[nickname]=test&filters[status]=foo
Run Code Online (Sandbox Code Playgroud)
现在如果我像这样直接发送一个对象:
Restangular.one('myList').get({filters: {
nickname: 'test',
status: 'foo'
}});
Run Code Online (Sandbox Code Playgroud)
真正发送的查询是
?filters={"nickname":"test","status":"foo"}
Run Code Online (Sandbox Code Playgroud)
如何发送真正的数组?我应该考虑替代方案吗?
我试图了解JavaScript中的承诺(特别是AngularJS).
我在服务中有一个函数,让我们调用它fooService,检查我们是否加载了一些数据.如果有,我只想让它返回,如果我们没有,我们需要加载数据并返回一个承诺:
this.update = function(data_loaded) {
if (data_loaded) return; // We've loaded the data, no need to update
var promise = Restangular.all('someBase').customGet('foo/bar').then(function(data) {
// Do something with the data here
}
return promise;
}
Run Code Online (Sandbox Code Playgroud)
我有另一个函数然后调用这样的update函数fooService:
fooService.update(data_loaded).then(function() {
// Do something here when update is finished
})
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我们不需要在update函数中加载数据,则不返回promise,因此.then()不会在我的其他函数中调用.该方法应该在这里 - 基本上我想立即从update()函数返回一个已解决的承诺,如果我们不需要从Restangular调用中获取数据?
在我的AngularJS项目中,我正在尝试使用Restangular getList方法,但它返回一个错误,因为API响应不是直接数组而是包含数组的对象.
{
"body": [
// array elements here
],
"paging": null,
"error": null
}
Run Code Online (Sandbox Code Playgroud)
Restangular错误消息是:
Error: Response for getList SHOULD be an array and not an object or something else
Run Code Online (Sandbox Code Playgroud)
是否有可能告诉Restangular它正在寻找的数组是在body属性内?
首次在工作网站上使用Restangular时,我收到以下JavaScript错误:
无法实例化模块restangular,因为:'_'未定义
我错过了什么?'_'未定义是什么意思(在Restangular模块中)?
我是Angular JS的新手,我需要使用json格式的表格数据的restangular POST.另外我是POST新功能的新手,谁能告诉我怎么做呢?
我的索引页面:
<form ng-controller="registerCtrl">
<input placeholder="Username" type="email" name="username" ng-model="user.email" />
<input placeholder="Password" type="password" name="password" ng-model="user.password"/>
<input placeholder="Confirm Password" type="password" name="confirmpassword" ng-model="user.confirmPassword" />
<button class="btn btn-info" ng-click="registerUser()" type="submit">Login</button>
</form>
Run Code Online (Sandbox Code Playgroud)
调节器
var myApp=angular.module('myApp',['restangular']);
function registerCtrl($scope, Restangular){
$scope.user = {};
$scope.registerUser=function(){
$scope.people = Restangular.all('data.json/:user').post($scope.user);
}
}
Run Code Online (Sandbox Code Playgroud)
在这里我应该将输入值作为Json格式传递.....如果代码错了,请纠正我.....
我正在尝试使用Restangular 服务,但我遇到了一个我无法解决的问题.例如,我正在做POST请求,我想获得干净的响应对象,但在我的响应中,对象包装了所有Restangular方法,我知道这可能是一个功能,但我需要我的干净响应:))
this.Restangular.one("auth").post("login",data).then(function(resp){
console.log(resp);
// in response object wrapped all Restangular methods
}
Run Code Online (Sandbox Code Playgroud) angularjs ×10
restangular ×10
javascript ×5
angular-data ×1
html ×1
json ×1
ngresource ×1
promise ×1
rest ×1