【发布时间】:2014-11-24 17:23:44
【问题描述】:
我有以下代码
void onSelectionChangedFiredSources( Event event, var detail,
SelectCheckboxMenuComponent target)
{
// getItemModels returns a list of objects
getItemModels( target.selectedItems )
..forEach( (item)
{
switch( item.label )
{
case 'Ear':
toggleDialog( 'paper-dialog-transition-center',
$['ear-side-dialog']);
break;
case 'Eye':
toggleDialog( 'paper-dialog-transition-center',
$['eye-side-dialog']);
break;
case 'Nostril':
toggleDialog( 'paper-dialog-transition-center',
$['nostril-side-dialog']);
break;
case 'Thorax':
toggleDialog( 'paper-dialog-transition-center',
$['thorax-side-dialog']);
break;
default:
srcDataMap.add( item.label, item.selected);
}
});
}
当一个案例被触发时,我想跳出foreach循环。
请注意,每次选择更改时,所有选择都由 target.selectedItems 表达式返回。因此,如果“耳朵”是第一个选择,则执行循环,然后选择“眼睛”时,列表返回将同时具有耳朵和眼睛。 这怎么做最好? 谢谢
【问题讨论】:
-
你能解释一下你试图完成什么(除了结束
forEach,据我所知这是不可能的? -
请点击link,然后点击电影按钮。好家伙和教父被检查了。 getItemModels(target.selectedItems) 将返回复选框的两个标签。在我的情况下,当我单击“好家伙”时,会切换一个对话框,让我使用与“电影”类似的组件进行另一个选择。一旦做出第二个选择,我想完全脱离循环,而不触发选中的“教父”框,该框也会触发一个对话框。
-
恐怕我无法理解这个描述。如果你显示一个对话框并等待用户输入,那么你一定已经跳出了你所处的任何循环。Dart 是单线程的,所以如果你还在循环中,浏览器的 UI 线程将无法显示任何对话框。即,“一旦做出第二次选择”就为时已晚,无法摆脱任何东西。
标签: dart dart-polymer