在keyup上发出API请求但我无法访问范围内的某些内容

时间:2016-08-16 08:45:32

标签: javascript angularjs

过去几个小时我一直在努力,但我似乎无法弄明白为什么我可以访问$ scope.FeatureGroup来添加到我的网址

有什么想法吗?

angular.module('ngRepeat', ['ngAnimate',]).controller('repeatController', function($scope, $http) {
  $scope;
  $scope.FeatureGroup = 50000;
  $scope.ShowMeData = function($scope){
    var url = 'URLHERE' + $scope.FeatureGroup;   
    $http.get(url).success(function(data) { 
      console.log(data);
      //$scope.Object = data;
    });
  }
});
<html lang="en"><head>
  <meta charset="UTF-8">
  <title>Example - example-ng-repeat-production</title>
  <link href="animations.css" rel="stylesheet" type="text/css">
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-animate.js"></script>
  <script src="script.js"></script>
  </head>
  <body ng-app="ngRepeat">
    <div ng-controller="repeatController">
      There are  Features - Please click them to see the page:
      <br><input type="number" ng-model="FeatureGroup" ng-value="10" ng-keyup="ShowMeData()">  
      <br><input type="search" ng-model="q" placeholder="filter Features..." aria-label="filter friends">
      <ul class="example-animate-container">
        {{FeatureGroup}}
        <!-- ngIf: Objects.length === 0 -->
        <!-- ngRepeat: feature in Object | filter:q as results -->
      </ul>
    </div>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

那是因为以下行。您将覆盖$ scope变量:

 $scope.ShowMeData = function($scope){

在调用函数

时,您实际上没有传递任何范围变量
ng-keyup="ShowMeData()".

只需将其更改为:

$scope.ShowMeData = function(){

它应该有用。