Angular 2 beta - 选择不起作用(Chrome除外)

时间:2016-02-05 08:25:38

标签: angular

我只是对选择元素有一个简单的问题。我花了很多时间调试我的代码,因为select元素没有获取更改。但后来我发现了一些有趣的东西。他们在他们的页面上有形式示例angualr.io:https://angular.io/resources/live-examples/forms/ts/plnkr.html。如果您在Chrome以外的浏览器中尝试此示例,例如Firefox,Edge,IE11,则select元素不会检测更改。 有没有其他人注意到这个问题或我错过了什么?因为像Select这样的下拉元素中的变化检测是一个基础事物......我简直无法相信它不起作用。

3 个答案:

答案 0 :(得分:3)

我认为这个答案可以为你提供一个解决方案和马克的答案:

以下是一些代码:

.cd-dropdown-content,.cd-dropdown-content ul  {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-transition: -webkit-transform 0.3s;
  -moz-transition: -moz-transform 0.3s;
  transition: transform 0.3s;
  padding-top: 50px;
}

答案 1 :(得分:0)

the angular github

也讨论了这个问题

添加垫片Angular用于单元测试其框架(在所有其他脚本之前)有助于解决许多IE问题: https://github.com/angular/angular/blob/master/modules/angular2/src/testing/shims_for_IE.js

这个特殊功能可以解决这个特殊情况。

if (!Object.hasOwnProperty('name')) {
    Object.defineProperty(Function.prototype, 'name', {
        get: function() {
            var matches = this.toString().match(/^\s*function\s*(\S*)\s*\(/);
            var name = matches && matches.length > 1 ? matches[1] : "";
            // For better performance only parse once, and then cache the
            // result through a new accessor for repeated access.
            Object.defineProperty(this, 'name', {value: name});
            return name;
        }
    });
}

答案 2 :(得分:0)