2016-11-16 8 views
0

文字列が指定された文字列配列内にあるかどうかをチェックする関数を含むlitlleプログラムを作成しました。ここで は私の角度コード私のコントローラ内部のです:私のHTMLコードで角はコントローラ内で定義された関数を認識しません

$scope.currencies = ["EUR", "USD", "GBP"]; 
$scope.languagesValues = ["en", "nl"]; 

function searchStringInArray(str, strArray) { 
    for (var j=0; j<strArray.length; j++) { 
     if (strArray[j] === str) return j; 
    } 
    return -1; 
} 

$scope.saveGeneralParams = function(){ 

if (searchStringInArray($scope.paramsGEN.lan.paramUserValue, $scope.languagesValues) === -1){ 
    $scope.paramsGEN.lan.paramUserValue = 'en'; 
} 

if (searchStringInArray.inArray($scope.paramsGEN.cur.paramUserValue, $scope.currencies)=== -1){ 
    $scope.paramsGEN.cur.paramUserValue = 'EUR'; 
} 
//other things..... 

、私はこのコードを持っている:

<select id="language" name="language" ng-model="paramsGEN.lan.paramUserValue"> 
    <option ng-repeat="language in languages" value="{{language.value}}"> 
    {{language.name | translate}} 
    </option> 
</select> 

<select id="currency" name="currency" ng-model="paramsGEN.cur.paramUserValue">        
<option ng-repeat="currency in currencies" value ="{{currency}}"> 
    {{currency}} 
</option> 
</select> 

しかし、このコードは動作しないとの角度ディスプレイくれています: "エラー:a.searchStringInArrayは関数ではありません "。

どうすれば修正できますか?

+1

この関数はいつ呼び出されますか?また、2番目のifブロックでは、searchStringInArray.inArray - >これは定義されていないと書いてありますか? – aliasav

答えて

0

アレイには 'includes'メソッドがあります。 MSDN docsを参照してください。

試してみてください。

if ($scope.languagesValues.includes($scope.paramsGEN.lan.paramUserValue)) { 
    $scope.paramsGEN.lan.paramUserValue = 'en'; 
} 

あなたのためにそれを行う必要があります。

+0

私が理解しているように、文字列が別の文字列に含まれていない場合は、メソッドチェックが含まれますか?私がしたいのは、文字列が文字列配列に含まれているかどうかをチェックすることです。私はそれが同じものであることを確信していません... – salamanka44

+0

私はこれを編集しましたArray、私の間違いだった、私はArrayをタイプしたと思った! – rrd

関連する問題