javascript
  • html
  • angularjs
  • 2014-09-26 107 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文件中的問題,我知道了。對於寫得不好的問題抱歉。謝謝。

    相關問題