2017-04-24 253 views
1

我想要做一个下拉选择器与Angular 2.我有一个项目的数组,他们都显示得很好,双向数据绑定的作品。我唯一的问题是,下拉选择器没有默认值。当我加载页面时,选择器字段为空。选择器处于我的应用程序的编辑视图中,这就是为什么我想将缺省值与“entityToEdit.cluster.id”对象的值匹配。任何人都可以帮我解决这个问题吗?Angular 2:默认值下拉选择器

<select [(ngModel)]="entityToEdit.cluster" 
      name="clusterSelector"> 
     <option *ngFor="let data of clusterData" [ngValue]= "data"> 
     {{data.id}} 
     </option> 
</select> 
+0

默认值(ngModel)] = “entityToEdit.cluster [ '身份证']” 本来应该是ngmodel吧? – RemyaJ

+1

不,我想绑定entityToEdit.cluster对象。我只是通过它们的id在选择器中显示对象。 – Snerps

+0

但是如果你显示的是选项的id,那么默认值也应该显示为id吧? – RemyaJ

回答

4

只设置ngOnInit

ngOnInit() { 
    this.entityToEdit.cluster ="defaultval"; 
} 
+1

entityToEdit.cluster是一个对象,它保存了我想在选择器中显示的默认值。我为什么要改变它的价值? – Snerps

+0

它不会改变,它只是设置初始值 – Sajeetharan

+1

是的,但我想要显示的初始值已经在entityToEdit.cluster对象中。该对象很好,它只是不显示为我的选择器中的默认值。 – Snerps

0
Since you plan to show the selected id you should be setting the id as the ngmodel. 
<select [(ngModel)]="entityToEdit.cluster['id']" 
       name="clusterSelector"> 
      <option *ngFor="let data of clusterData" [ngValue]= "data.id"> 
      {{data.id}} 
      </option> 
    </select> 
+1

尽管这段代码片段是受欢迎的,并且可能会提供一些帮助,但它会[如果它包含一个解释](/ meta.stackexchange.com/q/114762)*如何解决该问题将会[大大改进。没有这些,你的答案就没有什么教育价值了 - 记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 –