标签: angular-resource

Angularjs正在将URL更改回原始导致问题

我的应用程序基于单页模型.我正在使用JQuery History对象来更改URL,以便在用户刷新应用程序时,我可以在用户刷新浏览器时保留应用程序的位置.它工作得很好但不知怎的它停止了工作.经过分析,我发现Angular.js正在将修改后的URL(由Jquery History API修改)更改为原始URL(用于启动Application的URL).我很惊讶和困惑为什么突然Angular JS开始重置URL.我尝试了很多,但没有找到任何根本原因.请帮助,也请建议其他可能的方法,以保留浏览器刷新(或后退按钮)上的用户位置.以下是更多细节.

//Change the browser state to support History to launch file. It will remove projectid from URL and will add fileid
function updateBrowserStateOnFileLaunch(fileId, pageTitle, stateCounter)
{
    //Get current URL
    var finalURL = getNormalizedHashedURL("");
        //Remove projectid query string from paramter if it has and update/add fileid
        finalURL = updateQueryStringParameters(finalURL, [{key:"projectid", value:undefined}, {key:"fileid", value:fileId}]);   
    //Change history
    History.pushState({state:stateCounter,rand:getTimestampId()}, pageTitle, finalURL); 
}
Run Code Online (Sandbox Code Playgroud)

注意:不添加"getNormalizedHashedURL"和"updateQueryStringParameters"方法的详细信息以保持较小的帖子.

我正在使用ng-if根据状态更改视图.

<!-- File editor view -->
        <div data-ng-if="currentView === 3">    
<!-- Project File view-->
</div>
Run Code Online (Sandbox Code Playgroud)

在调试期间,我看到angular.js在执行以下行后重置URL. …

jquery angularjs angular-resource

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

如何为服务器构建角度$ resource POST请求?

我无法从AngularJS的服务器端控制器上捕获ASP.NET MVC项目的请求:

    var appDirective = angular.module('app.directive', []);
    var xmplService = angular.module('app.service', ['ngResource']);
    var appFilter = angular.module('app.filter', []);        
    var app = angular.module('app', ['app.service', 'app.directive', 'app.filter', 'solo.table']);
    xmplService
    .factory('testResource1', function ($resource) {
         return $resource('/SoloAngularTable/TestMethod3', { id: '@id' }, { charge: { method: 'POST' } });
    });
    app
    .controller('ContentPlaceHolder1Controller', function ($scope, $http, testResource1) {                            
         testResource1.find({ id: 123 }, function (data) {                            
              alert('success');
         });
    });
Run Code Online (Sandbox Code Playgroud)

在MVC控制器上,我有一个无法捕获请求的方法:

[HttpPost]
public JsonResult TestMethod3(int id)
{
    var data = new { User = "Alex" };
    return Json(data);
} …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net asp.net-mvc angularjs angular-resource

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

AngularJS - Controller资源调用没有将参数传递给服务工厂?

在AngularJS中,我试图将控制器调用中的参数传递给服务工厂.但是,我似乎无法获得传递的参数.该函数总是将我设置的内容传递给服务中的默认值.如果我不包含默认值,它不会传递任何内容.

例如,我的代码看起来类似于:

调节器

...
Room.enter({room_id: '5'/*$scope.room_id*/}, function(return_data)
    {
        //Callback function stuff.
        ...
    }
...
Run Code Online (Sandbox Code Playgroud)

服务

...
services.factory('Room', ['$resource',
    function($resource)
        {
            return $resource('/room/:room_id', {}, {
                    enter: {method: 'PUT', params:{room_id:'-1'}}
        });
    }
]);
...
Run Code Online (Sandbox Code Playgroud)

这样即使我试图传递5,也会调用http资源"/ room/-1".

如果我删除"enter"方法的params部分,那么"/ room"就是所有被调用的.根本没有传递任何参数.

关于我做错了什么的任何建议?非常感谢!

javascript angularjs angular-resource angularjs-service

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

角度资源没有调用我的错误回调函数

我已经在这几个小时了,我无法弄清楚为什么当我的rails后端引发一个正确的错误时,angular不会触发我的错误回调.我正在使用角度1.2.0rc1.

根据文件:

non-GET "class" actions: Resource.action([parameters], postData, [success], [error])

我在保存产品操作期间在角度控制器中使用它:

$scope.saveProduct = function(product){

  if (product.id) {
    Product.update({id: product.id},{product: product}, function(data){
      console.log('handle success')


    }, function(){
      console.log('handle error')  //THIS IS NEVER OUTPUT!

    });
  } 

}
Run Code Online (Sandbox Code Playgroud)

这是资源定义:

angular.module('sellbriteApp.resources').factory('Product', function ($resource) {
  return $resource('/api/products/:id', { id: "@id" },
    {
      'create':  { method: 'POST' },
      'index':   { method: 'GET', isArray: true },
      'show':    { method: 'GET', isArray: false },
      'update':  { method: 'PUT' },
      'destroy': { method: 'DELETE' }
    }
  );
});
Run Code Online (Sandbox Code Playgroud)

这是我的rails控制器:

def update …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails angularjs angular-resource

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

$resource 成功回调返回 $promise

使用 Angular 1.2.14,$resource 的成功回调应该返回一个对象,但它有时会得到一个 $promise。node/express Web 服务返回 null,但 Angular 将其解释为 $promise。当 Web 服务返回非空值时,成功回调按预期获取对象。

$resource('/api/users/:userId/team').get({ userId: userId }, function(team) {
    console.log('team: ', team);                
}, function(err) {
    console.log('err: ', err);
});
Run Code Online (Sandbox Code Playgroud)

team(成功回调的参数)的值是:

$promise: Object
    catch: function (callback) {
    finally: function (callback) {
    then: function (callback, errback, progressback) {
    __proto__: Object
    $resolved: true
__proto__: Resource
    $delete: function (params, success, error) {
    $get: function (params, success, error) {
    $query: function (params, success, error) {
    $remove: function (params, success, error) {
    $save: function (params, success, …
Run Code Online (Sandbox Code Playgroud)

promise angularjs angular-resource

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

访问chrome net :: ERR_INSECURE_RESPONSE中的localhost api时出错

我试图使用angular $ resourses访问在localhost中运行的api,chrome console给出了错误说ERR_INSECURE_RESPONSE.

我尝试在Chrome中禁用网络安全性.还是一样的错误.这是我使用的角度工厂.如何绕过此错误并测试我的应用.

    ImpactPortal.factory('apiFactory', function ($resource) {
    return $resource('https://localhost:8443/mifosng-provider/api/v1/client_impact_portal', {}, {
        query: {
            method: 'GET',
            params: {},
            isArray: true
        }
    })
});
Run Code Online (Sandbox Code Playgroud)

google-chrome angularjs angular-resource

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

angularjs处理$ resource $ promise错误

如果连接到我的API时出错,有人可以帮我弄清楚如何在我的AngularJS工厂中返回硬编码数据.我的硬编码数据位于另一个名为"dataFactory"的工厂中.感谢您的帮助.

service.factory("ScheduleFactory", ['$http', '$resource', '$q', 'dataFactory', function($http, $resource, $q, dataFactory) {
        var objFactory = {};

        objFactory.getDaysOfWeek = function(includeWeekends) {
            var days = [];
            var API  = $resource(restURL + '/daysOfWeek/');

            API.query()
                .$promise
                    .then(function(data) {
                        isEmpty = (data.length === 0);

                        if (!isEmpty) {
                            days    = data;
                        };
                    })
                    .catch(function(error) {
                        console.log("rejected " + JSON.stringify(error));

                        var data    = null;
                        days    = dataFactory.daysOfWeek;

                        console.log(days.length); // returns 5
                    });


            console.log("after promise " + days.length);  // returns 'after promise 0'

            return days;
        };
Run Code Online (Sandbox Code Playgroud)

我的dataFactory定义如下:

dataApp.factory("dataFactory", function() …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angular-resource angular-promise

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

更改资源的基本URL

我正在使用Angular在同一个应用程序上使用RESTful API.我对一个$资源建立contacts在资源http://sample-site.com/api/contacts

这很棒而且很有效,但是我需要与/api/contacts应用程序的不同页面上的基本CRUD进行交互.

例如,我需要在托管的Web应用程序的另一个页面上再次与联系人进行交互http://sample-site/friends/{friend-id}.但是,当我尝试在该页面上使用我的联系人资源时,资源的URL将附加到当前 URL:

GET | http://sample-site/friends/1/api/contact

但我真正需要的是GET | http://sample-site/api/contact在该页面上的该资源上.

有没有办法配置资源来定义除当前页面之外的其他基本URL?

这是我尝试更改资源中的基本URL:

 .factory('ContactRest', ['$resource', '$location', function($resource, $location) {
    var host = $location.host()

    return $resource('https://:url/:action', {}, {
    // Normal CRUD actions
    query: { 
        url : host,
        action : 'api/contact',
        method : 'GET',
        isArray : true,
    }
 }]);
Run Code Online (Sandbox Code Playgroud)

这使得https://sample-site/friends/1/sample-site/api/contact.无论我如何定义$ resource,只需将任何URL附加到基本URL即可.我需要更改URL的基础.

angularjs angular-resource

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

如何使用 AngularJS 的 $resource 和弹簧休息控制器获取布尔值

尝试使用 angular js 的 $resource 服务从 spring restcontroller 发送 get 布尔值,但没有得到任何响应 $resource.get。我需要在客户端或服务器端添加任何额外的东西来获取布尔资源。下面是我的休息控制器和 $resource Rest 控制器的代码 -

@RequestMapping(value="validate/company/{companyName}",method=RequestMethod.GET,produces={"application/json"})
public Boolean validateCouponCode(@PathVariable("companyName") String companyName){
    return companyService.exists(companyName, Column.SITE_NAME);

}
Run Code Online (Sandbox Code Playgroud)

Angular js 的 $ 资源 -

function validateCompanyFn(companyName)  
    return $resource("admin/rest/company/validate/company/:companyName")
    .get({companyName:companyName}).$promise
}
Run Code Online (Sandbox Code Playgroud)

我在做什么错?请建议,如果有另一种使用 $resource 获取布尔响应的方法,并且在服务器端不使用任何额外的对象

rest spring angularjs angular-resource ngresource

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

如何修复$ resource:badcfg在我的情况下?

这是我的js代码

var MYModule = angular.module('myApp', ['ngRoute', 'myAppServices'])
    .directive('loading',   ['$http', loadingDirective])
    .config(myRouter);

angular.module('myAppServices', ['ngResource'])
    .factory('Users', function($resource) {
        return $resource('/MY/system/users');
    });

function UsersCtrl($scope, Users) {
    $scope.users = Users.query();
}
Run Code Online (Sandbox Code Playgroud)

在我的HTML代码中使用这个

<div ng-repeat="item in users">Hello</div>
Run Code Online (Sandbox Code Playgroud)

虽然我在/ MY/system/users的服务器代码中收到请求,但是浏览器出错了

Error: [$resource:badcfg] http://errors.angularjs.org/1.2.16/$resource/badcfg?p0=array&p1=object
    at Error (native)
Run Code Online (Sandbox Code Playgroud)

angularjs angular-resource

2
推荐指数
1
解决办法
3131
查看次数