我有一个Angularjs资源,在一种方法中,如果该查询参数非空,我想将查询参数发送到后端。不创建其他方法就可以实现吗?
示例资源方法:
get: {
method: 'GET',
url: /api/:token?source=:source,
paramSerializer: someSerializer
},
调用该方法的代码是
myResource.get({token: '1234'}, {source: <some source>});
令牌是必需的,但源是可选的,因此有时它不会传递到上述调用中。因此,如果为源提供了一个值,我希望能够发送源。如果未提供源值,则我根本不想发送源。例如,如果源为空,则调用将变为/ api / 1234;如果将源设置为some_source,则调用将变为/ api / 1234?source = some_source。
使用上面的代码,如果源为空,那么当源为空时,我看到请求为'/ api / 1234?source ='。
答案 0 :(得分:1)
如果您通过get.params {}传递查询参数,则AngularJS将自动处理剥离未定义的属性。
答案 1 :(得分:1)
只需定义没有额外参数的网址模板:
get: {
method: 'GET',
url: "/api/:token",
},
然后在调用操作时添加额外的参数:
myResource.get({token: '1234', source: <some source>});
多余的参数将作为查询参数自动添加到url中。
从文档中:
参数对象中的每个键值都首先绑定到url模板(如果存在),然后将多余的键附加到
?
之后的url搜索查询中。
有关更多信息,请参见