Javascript 将范围值设置为等于angularjs中的数组元素
我还是JavaScript新手,我想知道如何将$scope值设置为另一个数组的值,并在另一个函数中使用它。这就是我想做的:Javascript 将范围值设置为等于angularjs中的数组元素,javascript,angularjs,Javascript,Angularjs,我还是JavaScript新手,我想知道如何将$scope值设置为另一个数组的值,并在另一个函数中使用它。这就是我想做的: (function () { 'use strict'; angular .module('app') .controller('LanguageController', LanguageController); LanguageController.$inject = ['$scope','$translate'
(function () {
'use strict';
angular
.module('app')
.controller('LanguageController', LanguageController);
LanguageController.$inject = ['$scope','$translate'];
function LanguageController($scope,$translate) {
$scope.lang = [
"Nederlands",
"Français",
"English",
"Deutsch",
"Español"
];
$scope.selectLang = $scope.lang[0];
$scope.changeLang = function(){
console.log("Lang === " + $scope.selectLang);
}
// When value of $scope lang change i would want do
//Change the value of this
$scope.langI18n = [
"nl_NL",
"fr_FR",
"en_US",
"de_DE",
"es_ES"
];
//And then use it here
$scope.setLang = function(langKey) {
// You can change the language during runtime
console.log("change to " +langKey )
$translate.use(langKey);
};
}
})();
我知道$scope.langI18n
是错误的,但我想知道如何改进它,使其工作
当设置
$scope.lang
时,我想到了一个可能的解决方案。使用一个函数将索引与数组langI18n
进行比较,然后将langues值设置为setlang
,但我需要对此进行一些调整。您可以在这里使用对象数组
$scope.langs = [
{"nl_NL": "Nederlands"},
{"fr_FR": "Français"},
{"en_US": "English"},
{"de_DE": "Deutsch"},
{"es_ES": "Español"}
];
这看起来很有希望,但我在$scope.lang[0]上遇到了一个错误:无法读取未定义的属性“0”。如果从上面的答案复制粘贴,那么它应该是$scope.langs(末尾有一个“s”)好的,所以现在可以了,但我在$scope.selectLang=$scope.lang[0]上遇到了以下问题,它返回2个对象。我怎么能说只需要第一个或最后一个对象?