2016-04-06 18 views
-2

角度-sanitize.js:6 TypeError例外:プロパティを読み取ることができません未定義

$scope.searchCat = function(){ 
 
     $scope.searchArray = []; 
 

 
     $scope.searchTerm = $('#search input[type="search"]').val().toLowerCase(); 
 
    }
<ion-header-bar class="bar bar-subheader item-input-inset"> 
 
     <div class="item-input-wrapper"> 
 
     <i class="icon ion-ios-search placeholder-icon"></i> 
 
      <input type="search" name="search" ng-model="searchTerm" style="width: 75%;margin-left:10px;" ng-change="searchCat()" placeholder="search for service"/> 
 
     </div> 
 
    </ion-header-bar>

の「toLowerCaseメソッド」私は私が使用して次の比較のために下部ケースに検索項目を取得するために私のリストで検索を使用しようとしていますtoLowercaseしかし、私は未定義の 'toLowercase'プロパティを読み取ることができないので、型エラーが発生しました。 私を助けてください。あなたがこれを行う場合は、事前

+0

ありがとうございます。すでにsearchTermを使用して小文字の値を初期化してから、$ scope.searchTerm = $ scope.searchValue.toLowerCase(); jsファイルに試したので、ng-model = "searchValue"の変更を試みました。それは同じエラーを与える –

答えて

1

ありがとう:あなたのhtmlでng-model="searchTerm"を、あなたは$ scope.searchTermに双方向データバインディングを宣言しています。つまり、DOM要素を検索する必要はありません。

// In the old days using jQuery you do this: 
$('#search input[type="search"]') // But never (seldom) with angular. Ugly as sin. 

代わりに:もちろん

// The binding is already there. 
// Just set the value to something so it won't be undefined. 
$scope.searchTerm = ""; 

$scope.searchCat = function(){ 
    // Or you could do an undefined check: 
    if (!angular.isUndefined($scope.searchTerm)){ 
     $scope.searchTerm = $searchTerm.toLowerCase(); 
    } 
} 

これだけ小文字に変換します。しかし、我々はあなたが欲しいものを知ることができません$scope.searchArray。さらに説明する。

+0

ありがとう..このソリューションは私のために働いて、私は間違ってコードで添付された次の比較操作のために$ scope.searchArrayを宣言された –

関連する問題