2016-10-31 69 views
1

我正在嘗試學習angular2dart並按照anguar2dart site的教程進行操作。由於它不是已知的本地屬性或已知指令,因此無法綁定到'ngModel'

請考慮下面的代碼:

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'); 
} 

當我編這一點,它讓我看到錯誤消息:

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>"): [email protected]:15 

我在做什麼錯?

+1

,有一個「module.ts」你應該從「@角/表格」加上'進口{FormsModule};'必須有飛鏢類似的東西。否則,如果將它添加到組件的頂部,它將起作用。 –

回答

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 
1

作爲角4,platform_directives不見了。

NgModel現在是表單指令。可以包含表單的指令如下:

import 'package:angular_forms/angular_forms.dart' as forms; 

@Component(
    selector: 'my-app', 
    directives: const[forms.formDirectives], 
) 
class AppComponent { 
} 
在打字稿
相關問題