angularjs ngclick 清除并搜索
angularjs ngclick clear and search
试图解决一个看起来很简单但很难理解的问题:-)
我有 Json 文件,我试图使用 AngularJS 从那里获取数据,基于用户输入(名称),浏览器仅显示那些结果而不是旧结果。
names.json
{"name": {
"Alan": [{ "Class":"1", "Books":"20"}],
"Sam": [{ "Class":"2", "Books":"204"}],
"John": [{ "Class":"4", "Books":"240"}],
}
}
示例:
输入:艾伦
输出:姓名:Alan,Class: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) {
$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});
}
});
}
试图解决一个看起来很简单但很难理解的问题:-)
我有 Json 文件,我试图使用 AngularJS 从那里获取数据,基于用户输入(名称),浏览器仅显示那些结果而不是旧结果。
names.json
{"name": {
"Alan": [{ "Class":"1", "Books":"20"}],
"Sam": [{ "Class":"2", "Books":"204"}],
"John": [{ "Class":"4", "Books":"240"}],
}
}
示例: 输入:艾伦
输出:姓名:Alan,Class: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) {
$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});
}
});
}