无法绑定到“ngModel”,因为它不是已知的本机属性或已知指令

zer*_*ing 5 dart angular

我正在尝试学习 angular2dart 并按照anguar2dart 网站的教程进行操作

考虑以下代码:

import 'package:angular2/core.dart';

class Hero {
  final int id;
  String name;
  Hero(this.id, this.name);
}

@Component(
    selector: 'my-app',
    template: '''
      <h1>{{title}}</h1>
      <h2>{{hero.name}} details!</h2>
      <div><label>id: </label>{{hero.id}}</div>
      <div>
        <label>name: </label>
        <input [(ngModel)]="hero.name" placeholder="name">
      </div>'''
)
class AppComponent {
  String title = 'Tour of Heroes';
  Hero hero = new Hero(1, 'Windstorm');
}
Run Code Online (Sandbox Code Playgroud)

当我编译它时,它向我显示了错误消息:

Build error:
Transform TemplateCompiler on Sample|lib/app_component.ng_meta.json threw error: Template parse errors:
Can't bind to 'ngModel' since it isn't a known native property or known directive. Please fix typo or add to directives list. ("
      <div>
        <label>name: </label>
        <input [ERROR ->][(ngModel)]="hero.name" placeholder="name">
      </div>"): AppComponent@5:15
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

小智 4

您似乎缺少 pubspec.yaml 文件中常见指令的转换器。

检查https://github.com/angular-examples/toh-1/blob/master/pubspec.yaml它包含以下变压器角度部分:

transformers:
- angular2:
    platform_directives:
    - 'package:angular2/common.dart#COMMON_DIRECTIVES'
    platform_pipes:
    - 'package:angular2/common.dart#COMMON_PIPES'
    entry_points: web/main.dart
Run Code Online (Sandbox Code Playgroud)