2016-10-30 2 views
1

Я хочу использовать значение переключателя и реализовать его в ссылку api, но по какой-то причине не связывается.Значение переключателя Angularjs, используемое в api link

Heres мой код

JS

myApp.controller('HomeController', ['$scope', '$http', 
    function($scope, $http) { 

     $scope.formData = {}; 
     $scope.doIt = function() { 
      $scope.targetURL = ('https://api.api/' + $scope.formData + '/us/profile'); 

      $http.get($scope.targetURL) 
       .success(function(results) { 
        $scope.data = results.data; 
       }); 
     }; 
    } 
]); 

HTML

<div class="container-fluid"> 
<div class="background"> 
    <div class="transbox"> 
     <div class="row"> 
     <div class="col-lg-4"> 
     </div> 
     <div class="col-lg-3"> 
      <label><input type="radio" name='radio' value="pc" ng-model="formData"><img src="../img/battlenet.png"></label> 
      <label><input type="radio" name='radio' value="psn" ng-model="formData"><img src="../img/playstation.png"></label> 
     </div> 
     <div class="col-lg-5"> 
     </div> 
     </div> 
     <div class="row"> 
     <div class="col-lg-9"> 
      <input class="form-control" type="text" placeholder="Enter Gamertag"> 
     </div> 
     <div class="col-lg-3"> 
      <button type="submit" class="btn btn-default" ng-click="doIt()"> Submit </button> 
     </div> 
     </div> 
    </div> 
</div> 

ответ

0

Это хорошо работает fiddle:

myApp.controller('HomeController', ['$scope', '$http', 
    function($scope, $http) { 

     $scope.formData = {}; 
     $scope.doIt = function() { 
      $scope.targetURL = ('https://api.api/' + $scope.formData + '/us/profile'); 

      $http.get($scope.targetURL) 
       .success(function(results) { 
        $scope.data = results.data; 
       }); 
     }; 
    } 
    ]); 

И ваш HTML:

<div ng-app="myApp"> 
<div ng-controller="HomeController"> 
    <div class="container-fluid"> 
     <div class="background"> 
     <div class="transbox"> 
      <div class="row"> 
       <div class="col-lg-4"> 
       </div> 
       <div class="col-lg-3"> 
        <label><input type="radio" name='radio' value="pc" ng-model="formData"><img src="../img/battlenet.png"></label> 
        <label><input type="radio" name='radio' value="psn" ng-model="formData"><img src="../img/playstation.png"></label> 
       </div> 
       <div class="col-lg-5"> 
       </div> 
      </div> 
      <div class="row"> 
       <div class="col-lg-9"> 
        <input class="form-control" type="text" placeholder="Enter Gamertag"> 
       </div> 
       <div class="col-lg-3"> 
        <button type="submit" class="btn btn-default" ng-click="doIt()"> Submit </button> 
       </div> 
      </div> 
     </div> 
     </div> 
    </div> 
</div> 

Я думаю, вы не вызывая контроллер, по крайней мере, в вашем примере это не так. Если вы проверите вкладку сети на консоли хрома для запросов, вы увидите, что отправлены правильные данные:

https://api.api/pc/us/profile 
https://api.api/psn/us/profile 
+0

изменить переменную области видимости из объекта $ scope.formData = {}; to $ scope.formData = null; – FRECIA

Смежные вопросы