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