这是我的 Controller
app.controller('languagesCtrl', function($scope) {
var lang = window.navigator.language || window.navigator.userLanguage;
if (lang === 'it' || 'it-it' || 'it-IT') {
$scope.showcase = 'Vetrina';
$scope.products = 'Prodotti';
$scope.cta = 'Nuova collezione strumenti';
} else {
$scope.showcase = 'Showcase';
$scope.products = 'Products';
$scope.cta = 'Check out new products!';
}
});
即使我确定我的 navigator.language 不是“it-IT”(选中 here ),我的基于 Angular 网站也不会使用 else 括号内的内容。
最佳答案
您的表达式将始终为真,就像您使用 ||
运算符的方式一样。
当表达式求值时
第 1 部分 (lang === 'it'
) 它可能是 true
或 false
,假设它是 false。
然后表达式变成像 (false || 'it-it' || 'it-IT')
它将总是返回去返回下一个表达式值,在这里它将是 it -it
在这种情况下,所以不管怎样,如果条件得到满足。
将其更改为以下。
if (lang === 'it' || lang === 'it-it' || lang === 'it-IT')
或事件简化。
if (['it','it-it','it-IT'].indexOf(lang) > -1)
关于javascript - navigator.language 在 app.js 中无法正确识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35349046/