加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 使用资源服务时如何传递参数?

发布时间:2020-12-17 08:41:00 所属栏目:安全 来源:网络整理
导读:一个非常新秀的问题: 我试图使用工厂方法构建资源对象: .factory('Magazines',[function ($resource) { var url = document.URL; var urlArray = url.split("/"); var organId = urlArray[urlArray.length-1]; return $resource('http://localhost/ci/api/
一个非常新秀的问题:

我试图使用工厂方法构建资源对象:

.factory('Magazines',[function ($resource) {

    var url = document.URL;
    var urlArray = url.split("/");
    var organId = urlArray[urlArray.length-1];

    return $resource('http://localhost/ci/api/magazines/:id',{
        loginID : organEntity,password : organCommpassword,id : organId
    });
  }])

此方法很容易,因为所有参数都是预定义的,organEntity和organCommpassword在标记内定义。

现在对于不同的资源对象,我需要在调用工厂时传入参数。

我想象这个资源对象的调用代码应该看起来像:

.controller('ResrouceCtrl',function($scope,Magazines) {
      $scope.magazines = Magazines.query();
});

我知道query()方法可以添加参数:Magazines.query(params,successcb,errorcb);

我不知道我是否只是传递参数,我可以在工厂获得参数吗?如何指定这样在工厂方法的参数传递?

例如,现在假设我不能从url获得organId,我需要从我的控制器传递它,如何在工厂方法中接收organId?

这里是我的资源js:

.factory('MagComments',function ($resource) {


    return $resource('http://localhost/dooleystand/ci/api/magCommenct/:id',{
      loginID : organEntity,id : '@magId' //pass in param using @ syntax
    });
  })

这是我的控制器:

$scope.magComments = MagComments.query({magId : 1});

我试图传入参数,但它会导致错误

我想我看到你的问题,你需要使用@语法来定义将以这种方式传递的参数,也不知道什么loginID或密码正在做你似乎没有在任何地方定义他们不是用作URL参数,因此它们是作为查询参数发送的吗?

这是我可以建议基于我目前看到的:

.factory('MagComments',function ($resource) {
    return $resource('http://localhost/dooleystand/ci/api/magCommenct/:id',id : '@magId'
    });
  })

@magId字符串将告诉资源使用您作为参数传递的对象的属性magId替换:id。

我建议阅读超过the documentation here(我知道这是一个有点不透明)非常仔细,看看的例子,到底,这应该有很多帮助。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读