带有下拉的角度转换在Chromium下不起作用

时间:2015-04-20 12:49:20

标签: angularjs html-select chromium angular-translate

我已翻译了一个应用程序。如果我使用<ul>进行语言选择,一切正常。当我切换到<select>时,我在铬下遇到了问题。但随着Firefox仍然工作正常。这里有2个代码片段:

  1. HTML部分
  2. &#13;
    &#13;
    <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>
    &#13;
    &#13;
    &#13;

    1. JS Part
    2. 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.");
              });
          };
      });
      

      有没有人有同样的问题?有什么建议吗?

1 个答案:

答案 0 :(得分:1)

看看你的plunker,我已经用一个工作版本更新了它:

http://plnkr.co/edit/6P4V5qD7SIcTdKpYxWm2?p=preview

有一些可能导致问题的事情。我已经在plunker中添加了注释,并在下面列出了它们。要查看的文件是script.jsindex.html

你的plunker缺少的是你没有在html中定义ng-app属性。我将ng-app="app"添加到body元素中。没有这个,角度应用程序将无法自举。所以没有任何角度被执行。

在配置块的末尾还有一个缺少的结束括号,这可能只是在你编写plunker时,但它可能也会引起问题。

最后,需要在script.js文件之后加载angular.js文件。否则,在解析script.js时没有定义angular。

修改

我更新了plunker:

http://plnkr.co/edit/54Fk0uP9jn8CzmDnNZNr?p=preview

我想我误解了这个问题。问题在于如何编写select元素。似乎ng-click元素上的option没有以chrome格式触发。在ng-change元素本身上使用select,并在元素上使用ng-model解决此问题。它还可以稍微清理html,并使用更多选项更容易扩展。