2016-11-16 2 views
0

Я написал программу в виде углов, которая содержит функцию, которая проверяет, находится ли строка в заданном массиве строк. Вот мой угловой код внутри мой контроллер:Угловой не распознает функцию, определенную в контроллере

$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..... 

В моем HTML коде, у меня есть этот код:

<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

Когда эта функция называется? Кроме того, во втором блоке if вы написали searchStringInArray.inArray -> это не похоже на определение? – aliasav

ответ

0

Array имеет метод 'includes', который вы должны использовать. См. MSDN docs.

Try:

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

Это должно сделать это для вас.

+0

Как я понимаю, включает в себя метод проверки, если строка включена в строку ANOTHER нет? Что я хочу сделать, это проверить, включена ли строка в массив строк. Я не уверен, что это то же самое ... – salamanka44

+0

Я отредактировал это, чтобы сказать, что Array, это была моя ошибка, подумал, что я набрал Array! – rrd

 Смежные вопросы

  • Нет связанных вопросов^_^