尝试使用angularjs将一个输入值更新为另一个输入值

时间:2012-09-28 22:18:42

标签: javascript angularjs

我使用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>

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

1 个答案:

答案 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>