javascript - AngularJS $http.get 将变量作为参数键传递

标签 javascript angularjs

我是 AngularJS 的新手,正在尝试看看这是否可行。我在网上看了很多 $http.get 问题,但找不到这个问题的答案。

我有一个 api 调用,它具有三种不同的参数键可能性。

$http.get(url, {params : {$scope.searchBy : $scope.value}})

$scope.searchBy 被标记为语法错误。它有 3 个来自下拉列表的可能值。

我试过 var search = $scope.searchBy; 但是当我使用 {params : {search : $scope.value}} 时,值为“search”并且不是 $scope.searchBy。

有没有关于如何在没有 if 语句和单独的 api 调用的情况下完成此操作的建议?

谢谢。

最佳答案

您必须执行类似的操作,因为这是有效的 javascript 语法。

var paramValues = {};
paramValues[$scope.searchBy] = $scope.value;
return $http.get(url, {params: paramValues});

当您使用问题中的语法定义对象时,属性/字段名称必须是已知常量。如果它是变量,在这种情况下您需要,那么您可以先创建对象,然后使用 obj[propertyName] = someValue; 表示法设置值。

关于javascript - AngularJS $http.get 将变量作为参数键传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47337537/

相关文章:

sql-server - ASP.NET WebAPI 和 IIS 中的请求计时不一致

javascript - jQuery 替换第一个匹配的字符串

java - 如何在javascript中访问java包

javascript - Node 模块的映射路径,用于单元测试

angularjs - $.grep 在匹配后返回属性

angularjs - 带有模板的 Angular 1.x 指令

javascript - 延迟后淡入 div

javascript - ExpressJS 设置/获取/使用 cookie

javascript - 使用 ng-file-upload 和 mongo gridfs 上传文件

javascript - AngularJS,$watch 运行两次,无法进行旧/新值比较工作