标签: restangular

从Restangular POST获得响应

发送Restangular POST后如何获取响应对象?

 firstAccount.post("Buildings", myBuilding).then(function() {
   console.log("Object saved OK");
 }, function() {
  console.log("There was an error saving");
 });
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取新的对象ID.

谢谢.

angularjs restangular

7
推荐指数
1
解决办法
1万
查看次数

使用Restangular删除条目

我在AngularJS应用程序中使用Restangular.我有一个表,每个项目都有一个删除链接.我想删除该项目并自动删除该行.但事情是它只从DB中删除.我如何重构事物以便DOM自动更新?

// The controller
angular.module('myApp').controller('ManageCtrl', function($scope, Restangular) {

  $scope.delete = function(e) {
     Restangular.one('product', e).remove();
  };

  Restangular.all('products').getList({}).then(function(data) {
    $scope.products = data.products;
    $scope.noOfPages = data.pages;
  });
});


 // The view
 <li ng-repeat="product in products">
   <a href="#" ng-click="delete(sheet._id)"></a>
  </li>
Run Code Online (Sandbox Code Playgroud)

我也很想找到一个这样的例子 - 即使使用Angular资源.所有管理/数据表演示似乎都来自静态数据.

javascript angularjs angularjs-ng-repeat restangular

7
推荐指数
1
解决办法
9774
查看次数

Restangular是否支持withCredentials选项和cors请求的其他选项?

我正在谷歌搜索,但我没有找到任何线索

if restangular支持withcredentials选项和cors请求的其他选项.

我的意思是我可以在没有任何问题的情况下在cors电话中使用它吗?

你能帮我吗 ?

cors angularjs restangular

7
推荐指数
1
解决办法
3414
查看次数

是否可以将RestAngular.setBaseUrl用于两个api接入点?

是否可以使用Restangular与2个不同的API?我想两者都有setBaseUrl().

rest angularjs restangular

7
推荐指数
1
解决办法
7967
查看次数

Restangular错误处理问题

我有一个restangular的问题.这段代码:

Restangular.one("undefined_ressource").get().then(
    function(res){
        console.log("success", res.code);
    },
    function (res) {
        console.log("fail", res.code);
   }
);
Run Code Online (Sandbox Code Playgroud)

试图获取http://api.local.com/undefined_ressource不退出的网址.我的服务器按预期返回404,但永远不会触发失败日志.Intead它会成功回调并记录"success 404"到控制台.

Angular version 1.2.15
Restangular version 1.3.1
Run Code Online (Sandbox Code Playgroud)

任何帮助都会受到欢迎!谢谢

error-handling restangular

7
推荐指数
1
解决办法
1万
查看次数

如何将自定义方法添加到restangular服务?

我有一个解耦的Restangular服务,我想附加一个自定义方法.看来,唯一的方法,在默认情况下收集回来的getList,onepost.我想要做Locations.getLongLat()

我已经尝试将以下内容添加到我的服务中,但没有运气(该方法没有绑定到对象),我只是undefined is not an object回应了.

angular.module('myApp')
.factory('Locations', function (Restangular) {

    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.addElementTransformer('api/v1/locations', true, function (location) {
            location.addRestangularMethod('getLongLat', 'get', 'longlat');
            return location;
        });
    }).service('api/v1/locations');
})
Run Code Online (Sandbox Code Playgroud)

有人有主意吗?

angularjs angularjs-service restangular

7
推荐指数
1
解决办法
1772
查看次数

如何从Restangular对象获取baseUrl(和其他配置设置)?

假设我按如下方式定义工厂:

angular.module('myServices').factory('TestService', ['Restangular', 
    function(restangular){
        return restangular.withConfig(function(RestangularConfigurer) {
            RestangularConfigurer.setBaseUrl('api');
            RestangularConfigurer.setRestangularFields({ id: 'Id'});
        };
    }).all('Job');
}]);
Run Code Online (Sandbox Code Playgroud)

我希望能够编写单元测试来确认我baseUrl和该id字段已正确设置.这可能吗?我知道我可以查看.route我的服务上的属性路线,但不包括baseUrl.

angularjs restangular

7
推荐指数
1
解决办法
1632
查看次数

Restangular - 如何覆盖错误拦截器

我正在使用AngularJS v1.2.16Restangular v1.4.0,并想知道是否可以覆盖ErrorInterceptor.如果有,怎么样?如果不是,我该如何解决?

我已经配置了一个错误拦截器,如下所示:

RestangularProvider.setErrorInterceptor(
    function ( response ) {
        if ( response.status == 401 ) {
        dialogs.error("Unauthorized - Error 401", "You must be authenticated in order to access this content.")
            .result.then( function () {
                $location.path("/login");
            });
        }
        else {
            // Some other unknown Error.
            console.log( response );
            dialogs.error(response.statusText + " - Error " + response.status,
                "An unknown error has occurred.<br>Details: " + response.data);
        }
        // Stop the promise chain.
        return false;
    }
);
Run Code Online (Sandbox Code Playgroud)

然后,在另一个地方,我进行了一个错误处理的POST调用.

function …
Run Code Online (Sandbox Code Playgroud)

angularjs restangular

7
推荐指数
1
解决办法
8091
查看次数

当我通过ajax加载https页面时,MixedContent,但浏览器仍然认为它是http

在网页上安装SSL证书后,我遇到了使用https服务的页面需要带有ajax的http端点的问题.我正在使用restangular,我更改了基本网址以使用https.

    var uri = location.protocol + "//" + location.host;
    RestangularProvider.setBaseUrl(uri);
Run Code Online (Sandbox Code Playgroud)

有趣的是,当我看到chrome开发人员工具中的请求时,我看到了

Request URL:https://theaddress.com/api/endpoint
Request Headers
Provisional headers are shown
Accept:application/json, text/plain, */*
Referer:https://theadress.com/somepage
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36
X-Requested-With:XMLHttpRequest
Run Code Online (Sandbox Code Playgroud)

所以请求应该是https,但我仍然得到:

Mixed Content: The page at 'https://theaddress.com/somepage' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://theadress.com/api/endpoint'. This request has been blocked; the content must be served over HTTPS.
Run Code Online (Sandbox Code Playgroud)

另外我应该提一下,这发生在prod服务器上,但是在我的本地测试之后它工作正常(我有自签名的ssl证书)之后我使用了包含https的基本网址.

可能是什么问题呢?

javascript https angularjs restangular

7
推荐指数
1
解决办法
8245
查看次数

在拦截器中重试Restangular调用

官方的restangular文档提供此代码示例以在ErrorInterceptor中重试请求:

var refreshAccesstoken = function() {
    var deferred = $q.defer();

    // Refresh access-token logic

    return deferred.promise;
};

Restangular.setErrorInterceptor(function(response, deferred, responseHandler) {
    if(response.status === 403) {
        refreshAccesstoken().then(function() {
            // Repeat the request and then call the handlers the usual way.
            $http(response.config).then(responseHandler, deferred.reject);
            // Be aware that no request interceptors are called this way.
        });

        return false; // error handled
    }

    return true; // error not handled
});
Run Code Online (Sandbox Code Playgroud)

但是,正如它在评论中所说,第二次尝试不会触发任何拦截器,因为它直接使用$ http.

有没有办法让第二个请求也通过Restangular管道并执行ErrorInterceptor?

angularjs restangular

6
推荐指数
1
解决办法
3344
查看次数