簡體   English   中英

在Angular JS中向ng-click添加參數

[英]Adding parameters to ng-click in Angular JS

我的代碼是這樣的

HTML視圖

<div ng-app="myApp" ng-controller="myCtrl"> 
  <button ng-click="get_user_detail(Andrew)"> 
  </button>

  <button ng-click="get_user_detail(Andrew1)"> 
  </button>
</div>

AngularJS

   var app = angular.module("myApp", []);

   app.controller("myCtrl", ['$compile', '$http', '$scope', function ($compile, $http, $scope) {
     $scope.get_user_detail=function(name){
         var response = $http.get("myURL", {
            params: {user_id:12345,name:name}
        });
      response.success();
      response.error();
     }
 }]);

當我使用一個參數user_id時,它工作正常,參數已正確傳遞給請求。添加第二個參數名稱后,未在參數中傳遞它。

安德魯不是$scope的變量。

所以,當你做get_user_detail(Andrew) ,價值Andrew不確定的


我猜您想將其作為靜態值 (字符串)傳遞,將您的值放在引號' '之間:

<button ng-click="get_user_detail('Andrew')"> 

與其他答案一樣,只要在要作為參數傳遞的字符串中添加" " ,您的代碼就可以正常工作。

 var app = angular.module('ngApp', []); app.controller("myCtrl", ['$compile', '$http', '$scope', function ($compile, $http, $scope) { $scope.get_user_detail = function(name){ $scope.name = name // response = $http.get("myURL", { // params: {user_id:12345,name:name} // }); // response.success(); // response.error(); } }]); 
 <div ng-app="ngApp" ng-controller="myCtrl"> You clicked {{name}} <br/> <button ng-click="get_user_detail('Andrew')"> Andrew </button> <button ng-click="get_user_detail('Bob')"> Bob </button> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script> <script src="app.js"></script> </div> 

由於明顯的原因,我評論了$http調用。 希望能幫助到你。

您必須在ng中輸入字符串,然后單擊“”:

<button ng-click="get_user_detail('Andrew')"> 

並在js代碼中-放在''中的名稱

params: {user_id:12345,'name':name}

我以為您沒有在控制器中定義變量,而是用$ scope定義了變量

<div ng-app="myApp" ng-controller="myCtrl"> 
  <button ng-click="get_user_detail(Andrew)"> 
  </button>

  <button ng-click="get_user_detail(Andrew1)"> 
  </button>
</div>

控制器代碼

var app = angular.module("myApp", []);

   app.controller("myCtrl", ['$compile', '$http', '$scope', function    ($compile, $http, $scope) {
     $scope.Andrew = 'John';
     $scope.Andrew = 'Jam';
     $scope.get_user_detail=function(name){
         var response = $http.get("myURL", {
            params: {user_id:12345,name:name}
        });
      response.success();
      response.error();
     }
 }]);

您可以直接傳遞字符串的其他解決方案而無需定義變量

<div ng-app="myApp" ng-controller="myCtrl"> 
  <button ng-click="get_user_detail('Andrew')"> 
  </button>

  <button ng-click="get_user_detail('Andrew1')"> 
  </button>
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM