我有一個窗體,用戶可以創建Todo的。一個ITodo
具有以下屬性:綁定選定的選項從下拉到Typesscript對象Angular 2
export interface ITodo {
id: number;
title: string;
priority: ITodoPriority;
}
export interface ITodoPriority {
id: number;
name: string;
}
所以創建待辦事項由設置title
- 屬性,並從下拉列表中選擇一個priority
的。該形式如下:
<form (submit)="saveTodo()">
<input type="text" [(ngModel)]="todo.title" />
<br />
<select (change)="setPriority($event.target.value)">
<option *ngFor="let priority of formModel.priorities" [value]="priority" [innerHtml]="priority.name"></option>
</select>
</form>
而且我Component
:
@Component({
selector: "[todo-form]",
templateUrl: "todo-form.view.html"
})
export class TodoFormComponent implements OnInit {
private formModel: ITodoFormModel;
private todo: ITodo = {
id: -1,
name: "",
priority: null
};
ngOnInit() {
//Retrieve formmodel, set in actual code
}
private setPriority(priority: any): void {
this.todo.priority = priority; //This is where the problems is
}
}
的問題是在功能setPriority
具體在哪裏我嘗試設置this.todo.priority
的部分。參數priority
的值可用,但我無法將其設置爲this.todo.priority
。 我都試過了,並且做什麼工作如下:
private setPriority(priority: any): void {
let p: ITodoPriority = null;
this.formModel.priorities.forEach(function (item) {
if(priority == item) {
p = item;
}
});
this.todo.priority = p;
}
那麼,這樣做的工作,但它是一個有點醜陋和低效它似乎。 什麼才能正確地做到這一點?