私は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>
2 番目の入力は一部のデータをフィルター処理し、それを直接入力すると機能します。ただし、このページにはさまざまなデータ セットがあり、それぞれに独自の検索入力があり、上部のマスター入力によって更新する必要があります。value="" を設定することも、jQuery を使用して値を設定することもできません。その 2 番目の入力フィールドに明示的に入力しない限り、空白に表示されます。誰でも解決策を手伝ってもらえますか?
編集
アプリとコントローラーのコードを含める必要があると考えました。
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 で update cquery と呼べる関数を作成しました:
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();
}
});
これはうまくいきます。ただし、これにより別の問題が発生します。cquery を使用する前は、 cquery.Name を使用して Name 属性のみをフィルタリングしていました。この新しいソリューションでは、次のように変更する必要がありました。
<div><input type="hidden" id="ciquery" ng:model="ciquery"></div>
これにより、データ内のすべてのフィールドが検索され、不要な結果が返されます。提案?