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(我知道这是一个有点不透明)非常仔细,看看的例子,到底,这应该有很多帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |