【发布时间】:2018-01-21 19:21:09
【问题描述】:
我正在开发一个项目应用程序。现在,A 可以将项目转移到 B。我的界面很简单:从左侧选择作为来源的成员列表以及在右侧提供给谁的列表。由于信息的来源、外观和搜索功能是相同的,所以我想创建一个我可以在这里使用的组件(以及另一个需要类似界面的组件)。这是一个现实但简化的版本:
在 parent.ts,html 我有:
<div class="col-md-3">
<label>Source</label>
<app-browser></app-browser>
</div>
<div class="col-md-3">
<label>Destination</label>
<app-browser></app-browser>
</div>
AppBrowser.componenet.ts:
selected_g:number=0; //nothing selected yet.
eventSelect(){
var element=document.ElementByID('data') as HTMLSelectElement;
let value:number=+element.value;
if(value==0){
alert('Make a selection');
return false;
}
this.selected_g=value;
}
模板:
<select id="data">
<option value="0">Select One</option>
<option value="1">G1</option>
<option value="2">G2</option>
</select>
<button (click)="eventSelect()">Confirm</button>
现在的问题是:如果我在第一个(源,即我首先插入的实例)中选择了一个有效选项,那么第二个实例(目标)无效。也就是说,我可以选择值 0 并单击确认,它不会抱怨。如果第一个实例只选择了 0,它会抱怨。我的印象是组件就像类:如果我多次插入组件,每个组件都会在自己的权限/空间中工作。但似乎只有第一个实例可以管理整个事情。我弄错了吗?
【问题讨论】:
-
谢谢@match 我在发帖之前确实检查过,感觉不一样。如果我发送垃圾邮件道歉。
-
好吧,我不知道这个问题,所以这篇文章帮助我学到了一些东西。这是我刚刚创建的plunkr,它显示了我认为您使用“子”组件所需的行为。
-
如果您同意这是重复的,请点击“关闭”并将其标记为重复以保持整洁!
-
刚刚更新了您的 plunkr;但仍然是同样的错误。你能用它来看看我的意思吗:如果你选择“Select One”,eventSelect() 应该会提示 false。但是在这里,整个事情都是由一审决定的。
标签: angular components