Рассмотрим класс:ngModel работает только как выход
export class MyClass {
a: string;
b: string;
getProperties(): string[] {
return [this.a, this.b];
}
}
Там есть компонент Angular2, который имеет поле типа MyClass
. В это шаблон, есть такие строки:
<span *ngFor="let property of newElement.getProperties(); let i=index">
<input [(ngModel)]="newElement.getProperties()[i]" class="new-rest-type" placeholder="property">
</span>
Когда компонент делает это правильно показать содержимое каждого свойства, как a
и b
, но если я что-то типа внутри <input>
, он делает изменить значение, отображаемое на странице , но не изменяет значение внутри newElement
. Любые идеи, почему это так ведет себя?
Также, MyClass
Поле объявлено в суперкомпоненте.
UPDATE для @Aravind: Скажем, я хочу сделать два компонента, которые вели бы себя подобные и показать имена людей внутри таблицы, где одна строка соответствует одному человеку, и каждый столбец соответствует каждому имени. В разных странах люди могут иметь разное количество имен, так это выглядит следующим образом:
export abstract class Person {
public abstract getNames(): string[];
}
export class RussianPerson extends Person {
firstName: string;
lastName: string;
public getNames(): string[] {
return [this.firstName, this.lastName];
}
}
export class IcelandPerson extends Person {
firstName: string;
public getNames(): string[] {
return [this.firstName];
}
}
Теперь я хочу иметь некоторые AbstractPersonNamesComponent
, которые будут иметь два подкласса: RussianPersonNamesComponent
и IcelandPersonNamesComponent
. Они будут иметь тот же шаблон, который будет содержать *ngFor
внутри, где мы будем отображать имена для каждого человека, используя второй *ngFor
для просмотра результата getNames()
. Это должно выглядеть примерно так л:
русский Персоналии:
| Леонид | Борисевич |
| Vasiliy | Петров |
Исландия Лица:
| Джон |
| Thomas |
Вы пытаетесь использовать поле поиска типа? также ваш тег ввода не имеет атрибута типа. обновить сообщение с содержимым компонента – Aravind
Я пытаюсь построить иерархию компонентов, которая будет распространять таблицы diffay, но таблицы могут иметь разные значения строк (в зависимости от количества подклассов полей в AbstractMyClass) –
это не правильный путь.дайте мне больше информации. Я расскажу вам о достижении вашей иерархии компонентов. – Aravind