Двусторонняя привязка данных Angular 2 в Electron не работает

Я использовал электронную кузницу для создания нового электронного проекта, использующего angular 2.

npm install -g electron-forge electron-forge init -t angular2

Затем я добавил @angular/forms

yarn add @angular/forms

Затем я отредактировал файл app.components.ts, чтобы он выглядел так:

import { NgModule } from '@angular/core';
import {FormsModule} from '@angular/forms';
import { BrowserModule } from '@angular/platform-browser';
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'App',
  template:
  `<div>
    <h2>Welcome to {{name}} Angular2!</h2>
    {{name}}
    <input [(ngModel)] = "name">
  </div>`
})
export class AppComponent implements OnInit {
  public name = 'electron-forge';

  ngOnInit(): void {
    console.log('component initialized');
  }
}

@NgModule({
  imports: [BrowserModule, FormsModule],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule { }

Двусторонняя привязка не работает... когда я меняю текст в своем элементе управления вводом, введенное имя не меняется

Что мне не хватает?


person Kyle    schedule 28.01.2017    source источник
comment
Кажется, работает нормально: plnkr.co/edit/1PJrd4zT5OXbLdccLShL?p=preview вы должна быть ошибка в другом месте   -  person eko    schedule 28.01.2017


Ответы (2)


Я понял проблему.

Мне пришлось загрузить zone.js и отразить метаданные в index.html вместо bootstrap.ts. Итак, когда я сделал это

  <script src="../node_modules/zone.js/dist/zone.js"></script>
  <script src="../node_modules/reflect-metadata/Reflect.js"></script>
  <script src="bootstrap.ts"></script>

Это сработало. я должен был удалить это

import 'zone.js';
import 'reflect-metadata';

Из bootstrap.ts

person Kyle    schedule 28.01.2017
comment
Мы не ссылаемся на bootstrap.ts. Вместо этого у нас есть ссылка на system.src.js, которая загружает его systemjs.config.js, и в нашем случае это не работает... Любая помощь приветствуется :-) - person A. Masson; 19.05.2017

Поскольку это может быть связано с тем, что вы забыли добавить FormsModule в файл module.ts. Проверьте свой app.module.ts.

import { FormsModule } from '@angular/forms';
...
imports: [ ..., FormsModule, ...]

Связанный вопрос

person Abhilash L    schedule 06.09.2018