AngularJS 资源:仅在非空时发送查询参数
AngularJS resource: Send query parameter only if non-empty
我有一个 Angularjs 资源,在其中一种方法中,如果查询参数不为空,我想将查询参数发送到后端。是否可以在不创建不同方法的情况下实现这一目标?
示例资源方法:
get: {
method: 'GET',
url: /api/:token?source=:source,
paramSerializer: someSerializer
},
调用方法的代码是,
myResource.get({token: '1234'}, {source: <some source>});
令牌是必需的,但来源是可选的,因此有时不会将其传递给上面的调用。因此,如果为源提供了值,我希望能够发送源。如果未提供源值,我想根本不发送源。例如,如果源为空,调用将变为 /api/1234,如果源设置为 some_source.[=13,则调用将变为 /api/1234?source=some_source =]
使用上面的代码,如果源为空,当源为空时,我看到请求为“/api/1234?source=”。
如果您通过 get.params{} 传递查询参数,那么 AngularJS 将自动处理剥离未定义的属性。
简单定义 url 模板,不带额外参数:
get: {
method: 'GET',
url: "/api/:token",
},
然后在调用动作时添加额外的参数:
myResource.get({token: '1234', source: <some source>});
额外的参数将作为查询参数自动添加到url。
来自文档:
Each key value in the parameter object is first bound to url template if present and then any excess keys are appended to the url search query after the ?
.
有关详细信息,请参阅
我有一个 Angularjs 资源,在其中一种方法中,如果查询参数不为空,我想将查询参数发送到后端。是否可以在不创建不同方法的情况下实现这一目标?
示例资源方法:
get: {
method: 'GET',
url: /api/:token?source=:source,
paramSerializer: someSerializer
},
调用方法的代码是,
myResource.get({token: '1234'}, {source: <some source>});
令牌是必需的,但来源是可选的,因此有时不会将其传递给上面的调用。因此,如果为源提供了值,我希望能够发送源。如果未提供源值,我想根本不发送源。例如,如果源为空,调用将变为 /api/1234,如果源设置为 some_source.[=13,则调用将变为 /api/1234?source=some_source =]
使用上面的代码,如果源为空,当源为空时,我看到请求为“/api/1234?source=”。
如果您通过 get.params{} 传递查询参数,那么 AngularJS 将自动处理剥离未定义的属性。
简单定义 url 模板,不带额外参数:
get: {
method: 'GET',
url: "/api/:token",
},
然后在调用动作时添加额外的参数:
myResource.get({token: '1234', source: <some source>});
额外的参数将作为查询参数自动添加到url。
来自文档:
Each key value in the parameter object is first bound to url template if present and then any excess keys are appended to the url search query after the
?
.
有关详细信息,请参阅