1

私は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>

これにより、データ内のすべてのフィールドが検索され、不要な結果が返されます。提案?

4

1 に答える 1

0

$scopeとng-modelは異なります。ng-clickの関数にng-modelのプロパティを指定する必要があります。これを見てください-> Ng-modelはコントローラー値を更新しません

2番目の入力のフィールドを更新するには(ここでは例-> http://jsfiddle.net/yEvSL/1/

<div><input type="text" id="ciquery" ng:model="query"></div>
于 2012-10-02T14:02:57.790 に答える