Angular表单:"没有值访问器用于..."

4
使用AngularDart Material包时,遇到了以下错误,希望得到帮助:
"No value accessor for (username) or you may be missing formDirectives in your directives list."
最小设置(在指令列表中指定了formDirectives): login.html
<form (ngSubmit)="onSubmit()" #form="ngForm">
        <material-input class="username" ngControl="username" [(ngModel)]="username"
            [required]="true"
            [floatingLabel]="true"
            label="Username">
        </material-input>
</form>

login.dart

import 'package:angular/angular.dart';
import 'package:angular_components/angular_components.dart';
import 'package:angular_forms/angular_forms.dart';

@Component(
  selector: 'login',
  styleUrls: const ['style.css'],
  templateUrl: 'login.html',
  directives: const [formDirectives,MaterialInputComponent,]
)
class LoginComponent {

  String username;
  void onSubmit() {}
}

你使用的是哪个Dart和AngularDart版本? - Günter Zöchbauer
angular_components: ^0.9.0-beta,sdk:'>=2.0.0-dev.66.0 <2.0.0' - Simon Rubin
你是否已经激活了 https://github.com/dart-lang/angular_analyzer_plugin#installing-by-angular-version----for-angular-developers-recommended?它是否显示任何错误/警告? - Günter Zöchbauer
1个回答

12
您需要在指令列表中添加ControlValueAccessor,以在material-input中使用它。
最好使用materialInputDirectives而不是直接使用MaterialInputComponent,因为它具有其他指令,您可能想要与值交互使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接