我需要让 http 获得每个文本输入,特别是 AngularJS
What I need to make http get on every textinput particularly AngularJS
我想在每个文本字段上执行 http Get,特别是在我的 HTML ..
当用户在实际聚焦的文本字段中输入内容时,我需要发送 http GET ..并且在后端实时搜索数据库以获取结果(我已经获得了使用 req.body 在 [= 中搜索查询文本的功能) 24=])...如果搜索文本与 DB 匹配,它应该在文本字段上显示来自 DB 的图像..如果我只为一个文本字段制作它应该工作......但不知道如何在某个周期或什么..没有为每个额外的单个文本字段制作 GET 方法..将来我想在用户按下 space 时动态增加文本字段计数并创建新的空输入字段..
我的 HTML 应该看起来像 beginin 一样:
<div class="container">
<br>
<div class="row">
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data}}" width="100%"/>
<br>
<h1 style="color:#258cd1;"><input type="text" ng- model="userInput.search" class="text-center" style="border-width: 0px ;width:100%" > </h1>
</div>
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data2}}" width="100%"/>
<br>
<h1 style="color:#258cd1;"> <input type="text" ng-model="userInput.search2" class="text-center" style="border-width: 0px ;width:99%"></h1>
</div>
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data3}}" width="100%"/>
<br>
<h1 style="color:#d62c1a;"> <input type="text" ng-model="userInput.search3" class="text-center" style="border-width: 0px ;width:99%"></h1>
</div>
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data4}}" width="100%"/>
<br>
<h1 style="color:#258cd1;"> <input type="text" ng-model="userInput.search4" class="text-center" style="border-width: 0px ;width:99%"></h1>
</div>
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data4}}" width="100%"/>
<br>
<h1 style="color:#d62c1a;"> <input type="text" ng-model="userInput.search9" class="text-center" style="border-width: 0px ;width:99%"></h1>
</div>
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data4}}" width="100%"/>
<br>
<h1 style="color:#258cd1;"> <input type="text" ng-model="userInput.search5" class="text-center" style="border-width: 0px ;width:99%"></h1>
</div>
</div>
在控制器中我有这样的东西..但它只适用于一个领域..
$scope.$watch('userInput.search', function () {
$http({
url: '/imgskuska',
method: 'POST',
headers: {'Content-Type': 'application/json'},
data: $scope.userInput
}).success(function (response) {
$scope.data = response;
})
})
我需要做的是调用 GET 方法(post 我认为这不是个好主意)在控制器中使用 $scope.$watch 仅在实际聚焦的文本字段上..并且用户正在输入那东西..当用户使用tabKey专注于另一个文本字段时从另一个输入进行调用..
我需要一些建议如何去做....非常感谢..
我会避免在这种情况下使用 $watch
,而是使用 ngChange
。你可以那样做:
<input type="text" ng-model="field1" ng-change="search($event,field1)" />
与:
$scope.search = function(event,fieldValue) {
// access to the input field : event.target
// do the HTTP call with fieldValue
}
更好的解决方案是创建一个 angular directive 来拥有一个可重用的组件:
<my-input-with-autosearch ng-model="field1" />
我想在每个文本字段上执行 http Get,特别是在我的 HTML ..
当用户在实际聚焦的文本字段中输入内容时,我需要发送 http GET ..并且在后端实时搜索数据库以获取结果(我已经获得了使用 req.body 在 [= 中搜索查询文本的功能) 24=])...如果搜索文本与 DB 匹配,它应该在文本字段上显示来自 DB 的图像..如果我只为一个文本字段制作它应该工作......但不知道如何在某个周期或什么..没有为每个额外的单个文本字段制作 GET 方法..将来我想在用户按下 space 时动态增加文本字段计数并创建新的空输入字段.. 我的 HTML 应该看起来像 beginin 一样:
<div class="container">
<br>
<div class="row">
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data}}" width="100%"/>
<br>
<h1 style="color:#258cd1;"><input type="text" ng- model="userInput.search" class="text-center" style="border-width: 0px ;width:100%" > </h1>
</div>
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data2}}" width="100%"/>
<br>
<h1 style="color:#258cd1;"> <input type="text" ng-model="userInput.search2" class="text-center" style="border-width: 0px ;width:99%"></h1>
</div>
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data3}}" width="100%"/>
<br>
<h1 style="color:#d62c1a;"> <input type="text" ng-model="userInput.search3" class="text-center" style="border-width: 0px ;width:99%"></h1>
</div>
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data4}}" width="100%"/>
<br>
<h1 style="color:#258cd1;"> <input type="text" ng-model="userInput.search4" class="text-center" style="border-width: 0px ;width:99%"></h1>
</div>
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data4}}" width="100%"/>
<br>
<h1 style="color:#d62c1a;"> <input type="text" ng-model="userInput.search9" class="text-center" style="border-width: 0px ;width:99%"></h1>
</div>
<div class="col-sm-2 col-lg-2 col-xs-2">
<img data-ng-src="data:image/png;base64,{{data4}}" width="100%"/>
<br>
<h1 style="color:#258cd1;"> <input type="text" ng-model="userInput.search5" class="text-center" style="border-width: 0px ;width:99%"></h1>
</div>
</div>
在控制器中我有这样的东西..但它只适用于一个领域..
$scope.$watch('userInput.search', function () {
$http({
url: '/imgskuska',
method: 'POST',
headers: {'Content-Type': 'application/json'},
data: $scope.userInput
}).success(function (response) {
$scope.data = response;
})
})
我需要做的是调用 GET 方法(post 我认为这不是个好主意)在控制器中使用 $scope.$watch 仅在实际聚焦的文本字段上..并且用户正在输入那东西..当用户使用tabKey专注于另一个文本字段时从另一个输入进行调用.. 我需要一些建议如何去做....非常感谢..
我会避免在这种情况下使用 $watch
,而是使用 ngChange
。你可以那样做:
<input type="text" ng-model="field1" ng-change="search($event,field1)" />
与:
$scope.search = function(event,fieldValue) {
// access to the input field : event.target
// do the HTTP call with fieldValue
}
更好的解决方案是创建一个 angular directive 来拥有一个可重用的组件:
<my-input-with-autosearch ng-model="field1" />