2017-04-04 77 views
0

我正在嘗試學習AngularJS,並在按鈕單擊以在調用http服務時追加到字符串url值之後傳遞用戶輸入的文本框文本值時需要幫助。訪問控制器中的angularjs文本框的值

我想以下面的方式添加,但它顯示了一個未定義的值,同時將URl與用戶從文本框中輸入的文本相加。

這裏是我的HtmlPage1.html

   <form ng-submit="abc(inputValue)"> 
        <input type="text" name="name" ng-model="inputValue" /> 
        <button type="submit">Test</button> 
       </form> 

和我的腳本文件的script.js

  var app = angular.module("repos", []) 
      .controller("reposController", function ($scope, $http, $log) { 
       $scope.inputValue = null; 
       $scope.abc = function (value) { 
        $scope.inputValue = value; 
       }; 

       $http({ 
        method:'GET', 
        url:  'https://api.github.com/users/'+$scope.inputValue+'/repos' 
       }) 
         .then(function (response) { 
          $scope.repos = response.data; 
          $log.info(response); 
         }); 
      }); 

誰能幫助我如何得到正確的價值這方面,用戶已經進入附加到URL?

在此先感謝。

回答

1

您輸入任何值之前都會接到您的來電。爲了使用inputValue調用API,請將get調用放在按鈕單擊中。

此外,您不必將inputValue從HTML中傳遞到函數中,Angular的2路綁定將爲您完成這項工作。

例: HTML

<form ng-submit="abc()"> 
    <input type="text" name="name" ng-model="inputValue" /> 
    <button type="submit">Test</button> 
</form> 

JS:

var app = angular.module("repos", []) 
       .controller("reposController", function ($scope, $http, $log) { 
        $scope.inputValue = null; 
        $scope.abc = function() { 
         $log.info($scope.inputValue) // you will have your updated value here 
         $http({ 
         method:'GET', 
         url:  'https://api.github.com/users/'+$scope.inputValue+'/repos' 
        }) 
        .then(function (response) { 
         $scope.repos = response.data; 
         $log.info(response); 
        }); 
       }); 
}; 

我希望這有助於。

0

只要記住你有控制器上的代碼感謝2路綁定。

在那裏您將爲模型設置一個對象。稍後您可以使用它們提交數據。

爲了讓你明白我試圖解釋我做了一個例子,我希望它能幫助

在您的代碼:
設置輸入標籤的NG-模型

<input type="text" name="name" ng-model="vm.data.inputValue" /> 

在您的控制器使其可以在我的例子

vm.data ={}; 

然後用功能使用NG-點擊發送。

<button type="submit" ng-click="vm.submit()">Test</button> 

我相信還有更多的方法可以做到這一點。

我並不好,解釋所以我做了一個例子,我希望幫助: https://jsfiddle.net/moplin/r0vda86d/

  • 我的例子是基本一致的,但我不喜歡使用$範圍。
相關問題