标签: restangular

Restangular:错误:未知提供者:RestangularProvider < - Restangular

我正在尝试restangular用作rails rest api的适配器,但我不能让它正常工作.我已经下载了最新版本并将文件放在vendor/assets/javascripts文件夹中.但是一旦我尝试加载应用程序,我会收到以下错误:

Error: Unknown provider: RestangularProvider <- Restangular
    at Error (<anonymous>)
    at http://0.0.0.0:3000/assets/angular.js?body=1:2706:19
    at Object.getService [as get] (http://0.0.0.0:3000/assets/angular.js?body=1:2832:39)
    at http://0.0.0.0:3000/assets/angular.js?body=1:2711:45
    at getService (http://0.0.0.0:3000/assets/angular.js?body=1:2832:39)
    at invoke (http://0.0.0.0:3000/assets/angular.js?body=1:2850:13)
    at Object.instantiate (http://0.0.0.0:3000/assets/angular.js?body=1:2882:23)
    at http://0.0.0.0:3000/assets/angular.js?body=1:4771:24
    at http://0.0.0.0:3000/assets/angular.js?body=1:4350:17
    at forEach (http://0.0.0.0:3000/assets/angular.js?body=1:161:20) 
Run Code Online (Sandbox Code Playgroud)

这是我的application.js文件

//= require jquery
//= require bootstrap
//= require suggest.min
//= require angular
//= require underscore
//= require restangular
//= require angular-strap.min
//= require angular-cookies
//= require angular-resource
//= require angular/index
Run Code Online (Sandbox Code Playgroud)

该应用初始化如下:

angular.module('angularApp', [
  'ngCookies', 
  'restangular'
]);
angular.module('angularApp.services', [
  'ngResource',
  'sessionService', …
Run Code Online (Sandbox Code Playgroud)

javascript ruby ruby-on-rails angularjs restangular

4
推荐指数
2
解决办法
7086
查看次数

如何在角度服务中使用带有promise模式的restangular

我有一个服务与休息角度与以下结构

function countrySvc(restangular) {
    restangular.addResponseInterceptor(function (data, operation, what, url, response, deferred) {

        if (operation === 'getList') {
            var newResponse = response.data;

            return newResponse;
        }
        return response;
    });
    var baseCountry = restangular.all('country');


    this.countries = function() {

        baseCountry.getList();

    };
}
Run Code Online (Sandbox Code Playgroud)

也是一个控制器

function countryCtrl(scope, countrySvc) {


    scope.countries = countrySvc.countries();

}
Run Code Online (Sandbox Code Playgroud)

但是当我从控制器访问国家时,结果是空的,数据成功请求,我的问题是如何从具有正确承诺模式的响应中提取数据,即(当我访问scope.countries时我需要一组国家/地区)

asp.net-web-api angularjs restangular

4
推荐指数
1
解决办法
3471
查看次数

通过angularjs为REST api建模关系数据

我正在构建一个应用程序,它支持node-mysql组合,以及前端部分的angularjs.后端REST服务已准备就绪,但我正在努力建模我的关系数据.关于这一点有一些问题:Angular.js中的$ resource关系Angular.js中的$ resource关系[已更新].这些方法仍然是最好的方法,还是资源有任何重大变化?或者也许Restangular是要走的路?

model relational angularjs ngresource restangular

4
推荐指数
1
解决办法
4185
查看次数

如何在 Restangular 中创建复杂的查询参数

我需要在 Restangular 中创建一个相当复杂的查询字符串。

http://vdmta.rd.mycompany.net//people?anr=Smith&attrs=givenName,displayName,name,cn
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

到目前为止,我可以使用这个来达到 ?anr=Smith:

return Restangular.all('/people').getList({anr:searchTerm});
Run Code Online (Sandbox Code Playgroud)

最后一部分 attrs=x,y,x 让我可以控制我想要在搜索中返回的属性,并且可以根据我提出的请求进行更改。

任何建议表示赞赏。

问候

一世

rest angularjs restangular

4
推荐指数
1
解决办法
1723
查看次数

正确设置Laravel 5 CSRF令牌的标头

好吧,几个小时都在搜索这个,但是找不到解决方案的开头.

我正在使用带有laravel后端的angularJS前端.Restangular是我的通讯服务.

我的POST很好,因为我可以在数据中包含_token,它会起作用.

但是对于Restangular来调用destroy函数它看起来像......

Restangular.all('auth/logout').remove(); //maps to AuthController@Destroy
Run Code Online (Sandbox Code Playgroud)

一切都很好,但是你会得到一个TOKENMISMATCH例外,这是一个很好的安全问题

由于我找不到将_token包含在remove中的方法,因为它实际上是无体的,所以我决定将标记放在标题中.

RestangularProvider.setDefaultHeaders({'X-XSRF-TOKEN': CSRF_TOKEN}); //CSRF_TOKEN gathered elsewhere
Run Code Online (Sandbox Code Playgroud)

在Chrome dev tolos中,我可以看到标头设置为

X-XSRF-TOKEN:ClkQIRLpFQgMg8ZT6X5CF6doCplRfdJzW8msx2JI
Run Code Online (Sandbox Code Playgroud)

X-XSRF-TOKEN 正是 VerifyCrsfToken.php所寻求的.然而,它吐出了解密错误.任何其他令牌名称,例如XSRF-TOKEN,_TOKEN,CSRF_TOKEN都会吐出令牌不匹配.

由于最后一个事实,似乎标题被正确声明,但超出我的理解范围的东西导致Laravel无法解密.而且我非常关注解密功能,但不明白它为什么会失败......

谢谢您的帮助.

csrf laravel angularjs restangular

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

何时在茉莉花中使用间谍vs $ httpBackend

我正在编写Jasmine代码来测试一些Restangular逻辑.我想测试我的'Foo' object是否已被Restangulraized,以便该foo.getList()方法将调用GET /foo并返回结果

我可以用两种方式测试这个.我可以添加.spyfoo.getList(),并使其返回预期的结果.或者,我可以$HttpBackend.whenGET("/foo")在那里使用并设置我的预期结果.

其中一个被认为是更可取的吗?

我认为HTTPBackend这是更好的选择,因为它在逻辑流程中"稍后"测试.如果我使用了一个spy我无法证明,例如,我的Restangularize没有搞砸,并试图解决一个不同的URL.

但是,我正在看继承的测试,他们都使用spy,因为我认为编写这段代码的人比我好(他们不能比我在Angular更新手),这让我想知道是否有一个优势使用spy$httpBackend.

testing jasmine angularjs restangular

4
推荐指数
1
解决办法
1491
查看次数

CodeIgniter没有收到POST数据

我已经有一个基于Codeigniter的RESTful api服务,它对mySQL数据库执行基本的CRUD操作.现在我正在尝试用angularJS和Restangular制作一个控制面板.

我发这样的POST请求:

HTML:

<form ng-submit="addUser()">
   <input type="text" name="name" ng-model="newUser.name" placeholder="Enter Your Name" />
   <input type="text" name="fact" ng-model="newUser.fact" placeholder="Enter A Fact" />
   <input class="pure-button" type="submit" value="Send" />
</form>
Run Code Online (Sandbox Code Playgroud)

JS:

$scope.addUser = function ()
{
    var newuser = $scope.newUser;
    Restangular.one("user").post(newuser).then(function(data) {
      console.log(data);
    })
}
Run Code Online (Sandbox Code Playgroud)

PHP(使用Codeigniter的inpu类):

$data = array(
    'name' => $this->input->post('name'),
    'fact' => $this->input->post('fact')
);
Run Code Online (Sandbox Code Playgroud)

然后它将$ data数组写入数据库.但在数据库中,值始终为0,这意味着$ data ['name']和$ data ['fact']为空.

我想我应该在PHP中以不同的方式处理数据,但我该怎么做呢?或者POSTed数据的类型是什么?

php codeigniter angularjs restangular

3
推荐指数
1
解决办法
1600
查看次数

AngularJS在module.config中更改URL

Restangular在我的angularjs App中使用setErrorInterceptor并用于在一个地方处理响应错误.如果发生错误,我想将用户重定向到登录页面.我知道唯一的providers&constants可注射配置阶段.

var app = angular.module('ourstandApp', ['ngRoute', 'restangular', 'ui.bootstrap', 'ngCookies', 'angularFileUpload']);
    // Global configuration

    app.config(function (RestangularProvider, baseRequestConfig, $routeProvider, urlsProvider) {
        var getBaseRequestUrl = function () {
            return baseRequestConfig.protocol + "://" + baseRequestConfig.hostName + ":" + baseRequestConfig.portNumber + baseRequestConfig.resourcePath;
    }
        var initializeRoute = function () {
            $routeProvider.when('/', {
                controller: LoginController,
                templateUrl: 'views/login.html'
            }).
            otherwise({
                redirectTo: '/'
            });
        }

        initializeRoute();
        RestangularProvider.setBaseUrl(getBaseRequestUrl());
        RestangularProvider.setErrorInterceptor(function (resp) {
            goToLogin();  //  i want to change url to login page …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-routing restangular

3
推荐指数
1
解决办法
7500
查看次数

对象不知道它是一个重新对象

我今天开始使用Restangular和Node,在我的角度视图中尝试将新用户添加到用户列表时遇到了问题.

view.html

<input type="text" ng-model="app.user.name" />
<input type="button" ng-click="app.addUser( app.user )" />

<ul>
    <li ng-repeat="user in app.users">
        <strong>{{ user.name }}</strong>    
        <input type="button" ng-click="app.removeUser( user )" />           
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

app.js

var baseUsers = Restangular.all( 'users' );

app.getUsers = function()
{
    baseUsers.getList().then( function( res ) 
    {
        app.users = res;
    });     
};
app.getUsers();

app.addUser = function( newUser )
{               
    baseUsers.post( newUser ).then( function( res ) 
    {
        if( res.success == true )
        {  
            // add new user to scope array
            app.users.push( res.data ); // …
Run Code Online (Sandbox Code Playgroud)

node.js angularjs restangular

3
推荐指数
1
解决办法
1683
查看次数

使用Restangular处理错误

我正在尝试使用Restangular从后端检索JSON对象.

1)这很好用,但我不知道如何处理错误,因为没有回调/保证功能:

meals = restAngular.all('meal').getList({date: selectedDate}).$object;
Run Code Online (Sandbox Code Playgroud)

承诺的以下内容不起作用:

restAngular.all('meal').getList({date: selectedDate}).then(function(newMeals){
    console.log(newMeals);
    meals = newMeals;
});
Run Code Online (Sandbox Code Playgroud)

我在"newMeals"对象中有一个Restangular对象而不是我的Json对象.就像是 :

addRestangularMethod: function (){var g=arguments,h=a?u:this;
all: function () { [native code] }
allUrl: function () { [native code] }
clone: function () { [native code] }
customDELETE: function () { [native code] }
etc..
Run Code Online (Sandbox Code Playgroud)

如何使用promises并能够处理潜在的错误来获取我的JSON"餐"?

2)附加问题:自Angularjs 1.2及其更好的新$资源实施以来,Restangular仍然是一个不错的选择吗?

非常感谢

angularjs restangular

3
推荐指数
1
解决办法
7492
查看次数