import {Component} from "angular2/core";
import {CORE_DIRECTIVES, FORM_DIRECTIVES, FormBuilder, ControlGroup, AbstractControl, Validators, Control} from "angular2/common";
@Component({
selector: 'parameters-form',
directives: [FORM_DIRECTIVES,CORE_DIRECTIVES],
template: `
<h1>Parameters Form</h1>
<p [(ngModel)]='arr'>{{ arr }}</p>
<form [ngFormModel]="myForm" (ngSubmit)="onSubmit(myForm.value)" class="ui form">
<div class="field">
<label for="systemParameters">System Parameters</label>
<input type="number"
id="systemParameters"
placeholder="systemParameters Param"
[ngFormControl]="systemParameters">
<button type="button" (click)="addToArray(systemParameters.value)">Add</button>
</div>
<button type="submit" class="ui button">Submit</button>
</form>
`
})
export class ParametersForm {
myForm: ControlGroup;
systemParameters: AbstractControl;
arr: number[];
constructor(fb: FormBuilder) {
this.myForm = fb.group({
"realisations" : [""],
"numConstSteps" : [""],
"timeHorizon": [""],
"continuationStep" : [""],
"continuationStepSign" : [""],
"numberOfModelParameters" : [""],
"systemParameters" : [],
"param" : [""],
"netLogoFile" : [""],
"numberOfModelVariables" : [""],
"restrictOperator" : [""],
"liftOperator" : [""],
"xInitial" : [""]
});
this.arr = [];
this.systemParameters = this.myForm.controls["systemParameters"];
}
addToArray(value: any): void {
this.arr.push(value);
(<Control>this.systemParameters).updateValue("");
}
onSubmit(form: any): void {
console.log(this.arr);
form.systemParameters = this.arr;
console.log("your submitted value:", form)
}
}
я пытаюсь показать значения внутри Arr (массив) в режиме реального времени, когда пользователь вводит значение в поле SystemParameters при вызове функции Add, которая выталкивает значение до arr
массив.{{туАггау}} Массив привязки не обновляется с учетом
это ошибка No value accessor for ''" in [arr in [email protected]:9]
причина его от ngModel
Thats настолько, насколько я знаю.
Обновлено: Основано на комментариях Гюнтера. Я удалил как ngModel
, так и директивы Core. Содержимое {{arr}}
не отображается, а внутренне в классе, который они выполняют.
Вам больше не нужно добавлять 'CORE_DIRECTIVES'. См. Http://stackoverflow.com/questions/34496514/ngmodel-no-value-accessor-for для аналогичного вопроса. Можете ли вы предоставить плункер? –
Вы не можете использовать 'ngModel', как на элементе' p'. 'ngModel' для входных элементов. –
@ GünterZöchbauer ах здесь plunker 'http: //plnkr.co/edit/dHJf8QEhhvU5LupdDcmX? P = preview', так что я могу сделать, чтобы показать значения массива в реальном времени? –