4

meteor angular 2 チュートリアルを進めています。ステップ 4では、ハッシュ f がフォームに等しい角度 2 フォーム バインディングを使用して、フォームを変数 f にバインドし、次に onSubmit 関数をバインドします。どちらも私のために働いていません。Angular 2 API は変更されましたか?

動作しない HTML:

<form #f="form" (submit)="addParty(f.value)">
  <div>{{f.value}}</div>
</form>

サンプルからの party-form.html の元の HTML コード:

<form [ng-form-model]="partiesForm" #f="form" (submit)="addParty(f.value)">
  <label>Name</label>
  <input type="text" ng-control="name">
  <label>Description</label>
  <input type="text" ng-control="description">
  <label>Location</label>
  <input type="text" ng-control="location">
  <button>Add</button>
  <div>{{f}}</div>
  <div>{{f.value}}</div>
</form>

そしてJSコンポーネントのparty-form.ts:

/// <reference path="../../typings/angular2-meteor.d.ts" />

import {Component, View} from 'angular2/angular2';

import {FORM_DIRECTIVES, FormBuilder, Control, ControlGroup, Validators} from 'angular2/angular2';

import {Parties} from 'collections/parties';

@Component({
    selector: 'parties-form'
})
@View({
    templateUrl: 'client/parties-form/parties-form.html',
    directives: [FORM_DIRECTIVES]
})
export class PartiesForm {
    partiesForm: ControlGroup;

    constructor() {
        var fb = new FormBuilder();
        this.partiesForm = fb.group({
            name: ['', Validators.required],
            description: [''],
            location: ['', Validators.required]
        });
        // Test
        console.log(this.partiesForm.value);
    }

    addParty(party) {
        console.log("assParty", party);
        return true;
        if (this.partiesForm.valid) {
            Parties.insert({
                name: party.name,
                description: party.description,
                location: party.location
            });

            (<Control>this.partiesForm.controls['name']).updateValue('');
            (<Control>this.partiesForm.controls['description']).updateValue('');
            (<Control>this.partiesForm.controls['location']).updateValue('');
        }
    }

}
console.log("PartiesForm loaded");

meteor angular 2 サンプルをコピーしました。そこの正確なコードを参照してください。ng-book のような他のサンプルでも onSubmit 関数として使用されます

#f="form" (submit)="onSubmit(f.value)"
4

1 に答える 1

1

問題はキャッシュの問題でした。チュートリアルを進めると、最初のバージョンはキャッシュでした。確かではありませんが、meteor は自動的にキャッシュ バスティングを行うべきだと思いますが、機能させるにはキャッシュを手動で削除する必要がありました。

于 2015-12-07T15:41:43.290 に答える