当前位置: 首页 > 知识库问答 >
问题:

Angular 2 beta-选择不工作(除了在Chrome)

公沈义
2023-03-14

我有一个关于select元素的简单问题。我花了相当长的时间调试代码,因为select元素并没有检测到更改。但后来我发现了一些有趣的事情。他们在页面angualr上有表单示例。io:https://angular.io/resources/live-examples/forms/ts/plnkr.html.如果您在非Chrome浏览器(如Firefox、Edge、IE11)中尝试此示例,select元素不会检测到更改。有没有其他人注意到这个问题,或者我遗漏了什么?因为像Select这样的下拉元素中的变化检测是一个基本的东西……我简直不敢相信它不起作用。

共有3个答案

石喜
2023-03-14

此问题已在beta.16中修复https://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta16-2016-04-26

公冶阳德
2023-03-14

在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;
        }
    });
}
阎鸿煊
2023-03-14

我认为这个答案可以为您提供一个解决方案和Mark的答案:

  • 如何在Angular 2中的“选择”中获得新选择?

这是一些代码:

@Component({
  (...)
  template: `
    <select [ngModel]="selectedDevice" (ngModelChange)="onChange($event)">
      <option *ngFor="#i of devices">{{i}}</option>
    </select>
  `)
  export class SomeComponent {

    onChange(newValue) {
      console.log(newValue);
      this.selectedDevice = newValue;
      // ... do other stuff here ...
    }
  }
 类似资料:
  • 我试图在表中使用日期选取器添加和删除行。默认情况下,日期选取器不起作用。但是我点击了添加行按钮,它已经工作了。我找不到解决方案。 请参考小提琴位置。

  • 我对此感到困惑。我搜索了2个多小时,无法理解发生了什么。 我有一个列表视图,我希望项目(行)是可选的。为了实现这一点,我设置了一个选择器作为行布局的背景。 ListView在片段中是这样定义的。xml布局文件: 选择器(bg_row_contact.xml)如下: 我的行布局(row_contact.xml)如下所示: 现在,我有一个自定义适配器,在其中我这样做是为了在用户单击该行时将项目标记为选

  • 我使用的是一个具有多个属性的select元素。这只适用于Firefox和Chrome,但不适用于IE9/IE10或IE11。有什么建议让它也适用于IE浏览器吗?看起来IE不接受字符=>

  • 我正在做一个Spring Boot Thymeleaf项目。我有文件,其中的片段用于其他超文本标记语言文件,以避免重写代码。 ,其中填充了客户端ID。 我已经在文件。 现在,我尝试在选择任何一个select选项时进行ajax调用,以将它们保存在session对象中。为此,我在。 但当选择选择选项时,永远不会调用此脚本。 我也试过: 我想通过这段代码实现的是:当选择任何一个select选项时,将调用

  • 我正在写一段代码来登录Gmail。在密码页面上,我不是使用隐式等待,而是想改用显式等待。然而,它不是拿起我的选择器? 我得到了一个错误: (节点:14428)UnhandledPromiseRejectionWarning:错误:processTicksAndRejections(internal/process/next_tick.js:81:5)处的elementHandle._clickab

  • 我有一个带有varchar类型电子邮件字段的表。 除表中的一封电子邮件外,其他所有电子邮件都能正常工作。