javascript
  • html
  • angularjs
  • 2014-09-26 101 views 0 likes 
    0

    我正在使用Angular过滤表的数据数组。该过滤器在桌面上工作,但是当我选择其中一个选项时,它会将[object Object]插入到我的文本输入中。我该如何阻止?停止将[对象对象]插入到我的文本输入

    <div class='table-filters'> 
    
        <div class='row'> 
        <label>Search</label> 
        <input ng-model="query" name='search' > 
        </div> 
    
        <div class='row'> 
        <label for='category'>Category</label> 
        <select ng-model="query.cat"> 
         <option value="">Any</option> 
         <option value="VOWEL">Vowels</option> 
         <option value="CONSONANT">Consonants</option> 
         <option value="NUMBER">Digits</option> 
         <option value="SIGN: DEP">Dependent Signs</option> 
         <option value="SIGN: IND">Independent Signs</option> 
        </select> 
        </div> 
    
        <div class='row'> 
        <label for='matched-rows'>Matched Characters</label> 
        <span id='matched-rows'>{{(rows|filter:query).length}}</span< 
        </div> 
    
    </div> 
    

    回答

    0

    查询是对象,它的toString()实现返回[object Object]。

    将query.cat用作输入的ng-model。

    <input ng-model="query.cat" name='search' > 
    
    +0

    但不会限制搜索只是.cat属性。我不能过滤所有属性而不仅仅是.cat。 – 2014-09-26 06:55:46

    +0

    但在这种情况下,您不需要输入。只需使用您的查询对象并进行过滤。从我看到你将不得不定义自定义过滤方法。 – 2014-09-26 11:36:24

    2

    我似乎已经找到了解决形成本plunker http://plnkr.co/edit/XklvXtc1AZpndjLvXrh8?p=preview;

    <div class='row'> 
    <label>Search</label> 
    <input ng-model="query[queryBy]" name='search' > 
    </div> 
    

    js文件:

    demo.controller('demoController', function($scope){ 
    
        $scope.rows = getRows(); 
        $scope.query = {}; 
        $scope.queryBy = '$'; 
    
    }); 
    

    我应该把我的js文件中的问题,我知道了。对于写得不好的问题抱歉。谢谢。

    相关问题