我在angular中编写了一个litlle程序,其中包含一个函数,用于检查字符串是否在给定的字符串数组中。 这是我的角色代码里面我的控制器:
$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>
但是这段代码没有用,角度显示我:&#34;错误:a.searchStringInArray不是函数&#34;。
我该如何解决?
答案 0 :(得分:0)
数组有一个&#39;包括&#39;你应该使用的方法。请参阅MSDN docs。
尝试:
if ($scope.languagesValues.includes($scope.paramsGEN.lan.paramUserValue)) {
$scope.paramsGEN.lan.paramUserValue = 'en';
}
那应该为你做。