将参数传递给 $resource?
Passing a parameter to a $resource?
我有一个看起来像这样的控制器:
(function() {
angular
.module("main")
.controller("HomeCtrl",
["branchResource",
"adalAuthenticationService",
HomeCtrl]);
function HomeCtrl(branchResource, adalService){
var vm = this;
vm.copyrightDate = new Date();
vm.user = adalService.userInfo.userName;
// right here, can I insert the vm.user from above
// as a parameter to the resource's query?
branchResource.query(function (data) {
vm.branches = data;
});
}}());
用户在应用程序中到达此点时即完成身份验证。因此,用户的信息可用。
我有一个后端 API,它采用用户名和 returns 用户有权访问的分支名称。我可以将 URL 连同有效的用户名粘贴到我的浏览器中,并获得预期的结果。我正在尝试在我的 branchResource
:
中使用 API
(function () {
"use strict";
angular
.module("common.services")
.factory("branchResource",
["$resource", branchResource]);
function branchResource($resource){
return $resource("/api/user/GetAllUserBranches?federatedUserName=:user")
}}());
不过,我的问题是我不知道如何将 vm.user
从控制器传递给 branchResource
。有人能指出我正确的方向吗?
创建 $resource
对象:
function branchResource($resource){
̶r̶e̶t̶u̶r̶n̶ ̶$̶r̶e̶s̶o̶u̶r̶c̶e̶(̶"̶/̶a̶p̶i̶/̶u̶s̶e̶r̶/̶G̶e̶t̶A̶l̶l̶U̶s̶e̶r̶B̶r̶a̶n̶c̶h̶e̶s̶?̶f̶e̶d̶e̶r̶a̶t̶e̶d̶U̶s̶e̶r̶N̶a̶m̶e̶=̶:̶u̶s̶e̶r̶"̶)̶ ̶
return $resource("/api/user/GetAllUserBranches")
}}
调用 $resource
对象:
branchResource.query({"federatedUserName": vm.user}, function (data) {
vm.branches = data;
});
//OR
vm.branches = branchResource.query({"federatedUserName": vm.user});
重要的是要意识到立即调用 $resource
对象方法 returns 一个空引用(对象或数组取决于 isArray
)。从服务器返回数据后,现有引用将填充实际数据。
参数对象中的每个键值首先绑定到 url 模板(如果存在),然后将任何多余的键附加到 ?
之后的 url 搜索查询。
有关详细信息,请参阅 AngularJS ngResource $resource API Reference。
我有一个看起来像这样的控制器:
(function() {
angular
.module("main")
.controller("HomeCtrl",
["branchResource",
"adalAuthenticationService",
HomeCtrl]);
function HomeCtrl(branchResource, adalService){
var vm = this;
vm.copyrightDate = new Date();
vm.user = adalService.userInfo.userName;
// right here, can I insert the vm.user from above
// as a parameter to the resource's query?
branchResource.query(function (data) {
vm.branches = data;
});
}}());
用户在应用程序中到达此点时即完成身份验证。因此,用户的信息可用。
我有一个后端 API,它采用用户名和 returns 用户有权访问的分支名称。我可以将 URL 连同有效的用户名粘贴到我的浏览器中,并获得预期的结果。我正在尝试在我的 branchResource
:
(function () {
"use strict";
angular
.module("common.services")
.factory("branchResource",
["$resource", branchResource]);
function branchResource($resource){
return $resource("/api/user/GetAllUserBranches?federatedUserName=:user")
}}());
不过,我的问题是我不知道如何将 vm.user
从控制器传递给 branchResource
。有人能指出我正确的方向吗?
创建 $resource
对象:
function branchResource($resource){
̶r̶e̶t̶u̶r̶n̶ ̶$̶r̶e̶s̶o̶u̶r̶c̶e̶(̶"̶/̶a̶p̶i̶/̶u̶s̶e̶r̶/̶G̶e̶t̶A̶l̶l̶U̶s̶e̶r̶B̶r̶a̶n̶c̶h̶e̶s̶?̶f̶e̶d̶e̶r̶a̶t̶e̶d̶U̶s̶e̶r̶N̶a̶m̶e̶=̶:̶u̶s̶e̶r̶"̶)̶ ̶
return $resource("/api/user/GetAllUserBranches")
}}
调用 $resource
对象:
branchResource.query({"federatedUserName": vm.user}, function (data) {
vm.branches = data;
});
//OR
vm.branches = branchResource.query({"federatedUserName": vm.user});
重要的是要意识到立即调用 $resource
对象方法 returns 一个空引用(对象或数组取决于 isArray
)。从服务器返回数据后,现有引用将填充实际数据。
参数对象中的每个键值首先绑定到 url 模板(如果存在),然后将任何多余的键附加到 ?
之后的 url 搜索查询。
有关详细信息,请参阅 AngularJS ngResource $resource API Reference。