我使用AngularJS相当新,但我一直在用于宠物项目而且我遇到了一个问题。我基本上想要做的是从这个输入字段输入文本:
<form id="ci_search_form">
<p class="input-append"><label>Search:</label> <input type="text" id="query" ng:model="query" autofocus> <button ng:click="clearSearch()" class="btn"><i class="icon-remove"></i></button></p>
</form>
并使用该值更新此输入字段的值:
<div><input type="text" id="ciquery" ng:model="ciquery.Name"></div>
第二个输入过滤一些数据,我可以直接输入,并且它可以工作。但是,此页面将具有不同的数据集,每个数据都有自己的搜索输入,我希望通过顶部的主输入更新。我不能设置value =“”或使用jQuery设置值,它只是显示为空白,除非我明确键入第二个输入字段。任何人都可以协助解决方案吗?
修改
我以为我应该包含我的app和控制器代码:
var App = angular.module('TicketAssistApp', []);
App.controller('SearchController', function($scope, $http, $filter){
$scope.query = '';
$http.get('static/ci_list.json').success(function(data){
$scope.ci_list = data;
});
$scope.clearSearch = function(){
$scope.query = '';
}
});
编辑2
取得了一些进展。在$ scope中创建了一个可以称为更新ciquery的函数:
var App = angular.module('TicketAssistApp', []);
App.controller('SearchController', function($scope, $http, $filter){
$scope.query = '';
$scope.ciquery = '';
$http.get('static/ci_list.json').success(function(data){
$scope.ci_list = data;
});
$scope.queryUpdate = function(){
$scope.ciquery = $scope.query;
}
$scope.clearSearch = function(){
$scope.query = '';
$scope.queryUpdate();
}
});
这很有效。但是,这会产生另一个问题。在ciquery之前,我使用ciquery.Name仅过滤Name属性。有了这个新的解决方案,我不得不改变它:
<div><input type="hidden" id="ciquery" ng:model="ciquery"></div>
搜索我的数据中的所有字段,这些字段会返回不需要的结果。建议?
答案 0 :(得分:0)
$ scope和ng-model是不同的。您应该将ng-model的属性赋予ng-click的功能。看看这个 - &gt; Ng-model does not update controller value
更新第二个输入的字段(此处为示例 - &gt; http://jsfiddle.net/yEvSL/1/)
<div><input type="text" id="ciquery" ng:model="query"></div>