angular-带下拉菜单的转换在 Chromium 下不起作用
angular-tanslate with dropdown doesn't work under Chromium
我翻译了一个应用程序。如果我使用 <ul>
作为语言 select,一切正常。当我切换到 <select>
时,我在 chromium 下遇到了问题。但是使用 Firefox 仍然可以正常工作。这里有 2 个代码片段:
- HTML部分
<select id="SelectLang" ng-controller="LanguageSelectController">
<option ng-click="changeLang('de_DE')">{{'LANGUAGE_FIELD_GERMAN'|translate}}</option>
<option ng-click="changeLang('en_EN')">{{'LANGUAGE_FIELD_ENGLISH'|translate}}</option>
</select>
- JS 部分
app.controller('LanguageSelectController', function ($scope, $translate) {
$scope.changeLang = function (key) {
$translate.use(key).then(function (key) {
console.log("Sprache zu " + key + " gewechselt.");
}, function (key) {
console.log("Irgendwas lief schief.");
});
};
});
有没有人遇到同样的问题?有什么建议吗?
看看你的 plunker,我已经用一个工作版本更新了它:
http://plnkr.co/edit/6P4V5qD7SIcTdKpYxWm2?p=preview
有几件事可能导致了这个问题。我已将更改的评论放在 plunker 中,并在下面列出。要查看的文件是 script.js
和 index.html
.
你的 plunker 缺少的是你没有在 html 中定义 ng-app
属性。我将 ng-app="app"
添加到 body 元素。没有这个,angular 应用程序将不会 bootstrap。所以你的 angular 中的 none 被执行了。
配置块末尾还缺少右括号,这可能是您在编写 plunker 时出现的,但它也可能导致了问题。
最后,script.js
文件需要在 angular.js
文件之后加载。否则 angular 未在解析 script.js 时定义。
编辑:
我更新了插件:
http://plnkr.co/edit/54Fk0uP9jn8CzmDnNZNr?p=preview
我想我误解了这个问题。问题在于如何编写 select
元素。 option
元素上的 ng-click
似乎没有在 chrome 中触发。在 select
元素本身上使用 ng-change
并在元素上使用 ng-model
可以解决此问题。它还稍微清理了 html 并使其更容易扩展更多选项。
我翻译了一个应用程序。如果我使用 <ul>
作为语言 select,一切正常。当我切换到 <select>
时,我在 chromium 下遇到了问题。但是使用 Firefox 仍然可以正常工作。这里有 2 个代码片段:
- HTML部分
<select id="SelectLang" ng-controller="LanguageSelectController">
<option ng-click="changeLang('de_DE')">{{'LANGUAGE_FIELD_GERMAN'|translate}}</option>
<option ng-click="changeLang('en_EN')">{{'LANGUAGE_FIELD_ENGLISH'|translate}}</option>
</select>
- JS 部分
app.controller('LanguageSelectController', function ($scope, $translate) {
$scope.changeLang = function (key) {
$translate.use(key).then(function (key) {
console.log("Sprache zu " + key + " gewechselt.");
}, function (key) {
console.log("Irgendwas lief schief.");
});
};
});
有没有人遇到同样的问题?有什么建议吗?
看看你的 plunker,我已经用一个工作版本更新了它:
http://plnkr.co/edit/6P4V5qD7SIcTdKpYxWm2?p=preview
有几件事可能导致了这个问题。我已将更改的评论放在 plunker 中,并在下面列出。要查看的文件是 script.js
和 index.html
.
你的 plunker 缺少的是你没有在 html 中定义 ng-app
属性。我将 ng-app="app"
添加到 body 元素。没有这个,angular 应用程序将不会 bootstrap。所以你的 angular 中的 none 被执行了。
配置块末尾还缺少右括号,这可能是您在编写 plunker 时出现的,但它也可能导致了问题。
最后,script.js
文件需要在 angular.js
文件之后加载。否则 angular 未在解析 script.js 时定义。
编辑:
我更新了插件:
http://plnkr.co/edit/54Fk0uP9jn8CzmDnNZNr?p=preview
我想我误解了这个问题。问题在于如何编写 select
元素。 option
元素上的 ng-click
似乎没有在 chrome 中触发。在 select
元素本身上使用 ng-change
并在元素上使用 ng-model
可以解决此问题。它还稍微清理了 html 并使其更容易扩展更多选项。