【问题标题】:angularjs ngclick clear and searchangularjs ngclick 清除并搜索
【发布时间】:2020-06-10 14:16:22
【问题描述】:

试图解决一个看起来很简单但很难理解的问题:-)

我有 Json 文件,我尝试使用 AngularJS 获取数据,基于用户输入(名称),浏览器只显示那些结果而不是旧的。

names.json

{"name": {
  "Alan": [{ "Class":"1", "Books":"20"}],
  "Sam": [{ "Class":"2", "Books":"204"}],
  "John": [{ "Class":"4", "Books":"240"}],
   }
 }

示例: 输入:艾伦

输出:姓名:Alan,班级:1,书籍:20。

我已经设法使用以下代码打印了预期的结果:

names.js 文件:

var NamesApp = angular.module('NamesApp', [])
NamesApp.controller('NameCtrl', function($scope, $http){
$http.get('names.json').success(function(data) {
          $scope.getit = data;
        });
        $scope.results = [];
        $scope.findValue = function(userInput) { 
        angular.forEach($scope.getit.name, function(value, key) {
      if (key === userInput) {
        $scope.results.push({n: key, c: value[0].Class, b: value[0].Books});
      }

    });

    };
});

我的 HTML 文件如下所示:

<body ng-controller="NameCtrl">
  <input type="text" ng-model="userInput">
  <button type="submit" ng-Click="findValue(userInput)">Find</button>
  <h3>Results</h3>
  <span ng-repeat="result in results">Name: {{result.n}} , Class: {{result.c}} , Books: {{result.b}}</span>
</body>

问题: 当你第一次搜索或者刷新页面后,你会得到干净的结果。

在搜索其他名称之前,我应该如何清理搜索结果?

我的结果部分应该总是只有查询的结果,而不是旧的结果。

【问题讨论】:

  • 有时你需要简单的思考。只需移动“$scope.results = [];”旁边 $scope.findValue = function(userInput) { line.

标签: javascript angularjs angularjs-ng-repeat angularjs-ng-click


【解决方案1】:

在每次搜索之前重置您的$scope.results

$scope.findValue = function(userInput) { 
        $scope.results = [];
        angular.forEach($scope.getit.name, function(value, key) {
      if (key === userInput) {
        $scope.results.push({n: key, c: value[0].Class, b: value[0].Books});
      }
    });
}

【讨论】:

    猜你喜欢
    • 2013-07-13
    • 1970-01-01
    • 2016-03-25
    • 2011-04-28
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多