问一个关于angularjs的resource问题 在线等,求大神~~
发布于 1个月前 作者 berwin 418 次浏览 来自 问答

路由中有两个:id的情况怎么动态设置前面的id?

官网上和好多文章(估计都是抄得,尼玛代码都一模一样,真没节操)的例子是这样的:

var CreditCard = $resource('/user/:userId/card/:cardId',
    {userId:123, cardId: '#id' }, { // # 换成 @
        charge: {method:'POST', params:{charge:true}
    }
 });

userId是写死得,实际应用场景下,这个ID怎么动态设置??

下面是我自己想出来的办法。可是 get query 包括修改都能用 ,唯独save(创建)的时候sourceID设置不上去。。 untitled1.png

在线等,求大神~~

8 回复

你知道resource是什么意思么?

你这个sourceID和id后面传的都是_id,换不同的名字就好了

这个问题最后被我自己搞定了。。跟@kekeliu 说的不是一回事。。在我来问之前,你说的那个我就试过了。。

这个 @ 符号表明如果你的数据对象,这里就是 creditCard 的一个实体,如果有 _id 属性的话 sourceID 使用 这个_id 的值, 所以修改和query 可以,因为已经有 _id 了 但是 save 不行,因为是新的要保存,所有还没有 _id 产生,所以你需要指定一个 sourceID, 例如 {sourceID: 1} 之类的

@russj 恩恩,是的,后来我save的时候,我在前面指定了一个sourceID,就好使了。 save({sourceID: $stateParams.sourceID}, $scope.data, function () {}) 不知道你说的是不是这样??

@berwin 是的。你没有就得指定。一般我们如果在链接后设置第二个 { } 参数的目的是设置缺省值和使用 @ 来表明使用 source 里的属性

@russj 多谢大神指点~

回到顶部