Microsoft Edge for Angular 7中的值更改时,绑定无法立即进行

时间:2019-02-07 12:24:42

标签: angular internet-explorer cross-browser microsoft-edge angular-elements

在我的Angular 7解决方案中,我在Microsoft Edge中的视图中存在数据绑定问题/其他浏览器(例如Opera,Chrome和Mozilla)正常工作/。 我的页面包含多个输入元素,例如文本框,下拉列表,单选按钮,日期选择器。在控制器/.ts文件/中的每个输入元素上都有onValueChange触发器,这些更改会立即生效,但视图不会更新。

我添加了双大括号表示法以在视图中显示当前值,但是该值为null / or old //,直到您单击下一个输入/而不是在每个输入上都单击-仅日期选择器或下拉列表/。 当我尝试在其他浏览器中进行检查时,在输入要输入的值后立即显示值。

我曾尝试为支持的浏览器基于angular官方网站添加多个polyfill,但没有帮助。

这是我的tsconfig.json和polyfills.ts:

{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"importHelpers": true,
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2015",
"typeRoots": [
"node_modules/@types"
],
"lib": [
  "es2017",
  "dom"
 ]
 }
 }

/** IE9, IE10 and IE11 requires all of the following polyfills. **/
 import 'core-js/es6/symbol';
 import 'core-js/es6/object';
 import 'core-js/es6/function';
 import 'core-js/es6/parse-int';
 import 'core-js/es6/parse-float';
 import 'core-js/es6/number';
 import 'core-js/es6/math';
 import 'core-js/es6/string';
 import 'core-js/es6/date';
 import 'core-js/es6/array';
 import 'core-js/es6/regexp';
 import 'core-js/es6/map';
 import 'core-js/es6/weak-map';
 import 'core-js/es6/set';

/** IE10 and IE11 requires the following for the Reflect API. */
 import 'core-js/es6/reflect';

// Used for browsers without a native support of Custom Elements
import '@webcomponents/custom-elements/custom-elements.min';

import '@ng-select/ng-select/bundles/ng-select.umd.min';

 import 'web-animations-js';  // run `npm install --save web-animations-js`.

有什么方法可以使它在Edge上工作吗?

1 个答案:

答案 0 :(得分:0)

尝试参考以下代码:

<input type="text" class="form-control" (input)="onSearchChange($event.target.value)"><br/>
<span>{{ name}}</span>

.ts文件:

export class AboutComponent implements OnInit {

  name:string;

  constructor() { }

  ngOnInit() {
  }
  onSearchChange(searchValue : string ) {  
    console.log(searchValue);
    this.name = searchValue;
  }
}

它在我这一边(Edge 42.17134.1.0)工作得很好,就像这样:

enter image description here

如果仍然无法运行,是否可以像Minimal, Complete, and Verifiable example中那样发布足够的代码来重现该问题。并且,您还可以检查Edge浏览器版本。