我在@Page
中几乎没有选择输入,除了存储所选选项的值,如{{project.title}}
之外,我还需要返回另一个选定的对象属性,如{{project.id}}
或整个对象。< / p>
如果我用于前。 (change)='DoThing($event)'
,它只返回project.title
的字符串。我不能把{{object.id}}
,它产生运行时错误。
我使用的代码:
<ion-item>
<ion-label>Project</ion-label>
<ion-select [(ngModel)]="newTrackedTime.project" (change)='DoThing()'>
<ion-option *ngFor='#project of myProjects' value="{{project.title}}">{{project.title}}</ion-option>
</ion-select>
</ion-item>
我确信这应该以某种方式起作用,但在咨询了几篇ANG2表格教程之后,我不清楚如何做到这一点。谢谢!
答案 0 :(得分:2)
您无法从*ngFor
外部引用由*ngFor
创建的一个项目。
您可以使用从project.title
获得的$event
来myProjects
查找项目。我想将id
分配给value
value="{{project.id}}"
然后您从project.id
获得$event
。
<ion-item>
<ion-label>Project</ion-label>
<ion-select [(ngModel)]="newTrackedTime.project" (change)='DoThing($event)'>
<ion-option *ngFor='#project of myProjects' value="{{project.id}}">{{project.title}}</ion-option>
</ion-select>
</ion-item>
...
DoThing(id) {
let project = this.myProjects.find((prj) => { return prj.id == id; });
...
}
答案 1 :(得分:0)
您可以尝试以下方法:
<ion-select [(ngModel)]="newTrackedTime.project" (change)='DoThing()'>
<ion-option *ngFor='#project of myProjects'
[attr.value]="project.title">{{project.title}}</ion-option>
</ion-select>
修改强>
您的错误表示您使用此:
(change)='DoThing({{project.id}})'
但project
仅适用于选项中的ngFor
...
答案 2 :(得分:0)
为您的ion-select
命名,并将其传递给DoThing()
:
<ion-select name="selectTime" [(ngModel)]="newTrackedTime.project" (change)='DoThing(selectTime)'>
您将获得整个选择DOM对象,您可以探索其子项以查找已检查的对象及其属性