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>

第二个输入过滤了一些数据,我可以直接输入它并且它可以工作。但是,此页面将有不同的数据集,每个数据集都有自己的搜索输入,我希望通过顶部的主输入进行更新。我也无法设置 value="" 或使用 jQuery 设置值,除非我明确输入第二个输入字段,否则它只会显示为空白。任何人都可以提供解决方案吗?

编辑

我想我应该包括我的应用程序和控制器代码:

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>

这会搜索我的数据中返回不需要的结果的所有字段。建议?

4

1 回答 1

0

$scope 和 ng-model 是不同的。您应该将 ng-model 的属性赋予 ng-click 的功能。看这个 -> Ng-model 不更新控制器值

更新第二个输入的字段(这里是一个例子-> http://jsfiddle.net/yEvSL/1/

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