2017-01-25 13 views
4

У проблемы с ngModel в угловом режиме 2. Задайте задачу вывода нескольких входов из массива в классе компонентов. Обнаружил возможность сделать ngModel своим значением из атрибута [name], не обнимая ngModel в [()]. И мне интересно, есть ли способ предоставить значение по умолчанию для этих входов.Установка значения ngModel по умолчанию углового 2

личностно details.component.ts:

import { 
    Component, 
} from '@angular/core'; 

import { Input }from './Input' 

@Component({ 
    selector: 'personal-details', 
    styleUrls: ['personal-details.component.sass'], 
    templateUrl: 'personal-details.component.html' 
}) 
export class PersonalDetailsComponent { 
    title: string; 
    inputs: Input[] = [ 
     new Input('Name', 'text', 'Name', true, true), 
     new Input('Surname', 'text', 'Surname', true, true), 
     new Input('Mobile phone Number', 'text', 'phone', true, true), 
     new Input('Date of Birth', 'text', 'birthday', false, true), 
     new Input('Title', 'text', 'title', false, false), 
     new Input('Title after name', 'text', 'title-after-name', false,  false), 
     new Input('Personal number', 'text', 'personal-number', false, false), 
     new Input('National ID/Passport number', 'text', 'personal-id', false, true), 
    ]; 
    save = function (form) { 
     console.log(form); 
    } 
    constructor(){ 
     this.title = 'someName'; 
    } 
} 

мой шаблон Здесь `s:

<h4 class="profile__title">Personal Details</h4> 
<form #personalDetails="ngForm" (ngSubmit)="save(personalDetails.value)"> 
    <div layout="row" flex-wrap> 
     <div class="profile__input-wrapper" *ngFor="let input of inputs" flex="33"> 
      <md-input-container class="profile__input-container"> 
       <input md-input 
        [placeholder]="input.placeholder" 
        [type]="input.type" 
        [name]="input.name" 
        [disabled]="input.isDisabled" 
        [required]="input.isRequired" 
        ngModel> 
      </md-input-container> 
     </div> 
    </div> 
    <profile-footer ></profile-footer> 
</form> 

Пробовал несколько других подходов к списку их ngFor, не увенчались успехом.

ответ

1

прямой путь будет использовать ngModel с односторонний связывающими

<input md-input 
    [placeholder]="input.placeholder" 
    [type]="input.type" 
    [name]="input.name" 
    [disabled]="input.isDisabled" 
    [required]="input.isRequired" 
    [ngModel]="input.value"> 

Он будет передавать начальное значение на вход без реакции на события и передачи изменений обратно в модель.

1

Оно должно быть простым, как связывание с атрибутом значение:

[value]="input.intitialValue" 

или если это не работает:

[ngValue]="input.intitialValue" 
+0

Спасибо за ответ! [ngValue] возвращает синтаксическую ошибку. [значение] кажется действительным, но не показывает результат в реальном представлении. Хотя ng-reflect-value = "1" занесено в DOM. –

1

решен вопрос, добавив ngModel = "{{ввод. DefaultValue}}»

+0

О, ду! Я упустил из виду, что вы выполняли одностороннюю привязку к ngModel (когда вы делаете ngModel) самостоятельно. Таким образом, вы изменили его на двухстороннюю привязку данных, и это работает. Силл промахнулся с моей стороны. –

 Смежные вопросы

  • Нет связанных вопросов^_^