Dart PaperDropdownMenu получает выбранный предмет
Я пытаюсь получить идентификатор выбранного элемента или даже текст, отображаемый в выпадающем списке меню. Вот мой код:
HTML:
<paper-dropdown-menu label="Currency" on-core-select="{{selectCurrency}}">
<paper-dropdown class="dropdown" halign='right'>
<core-menu class="menu" selected="{{selectedCurrency}}">
<template repeat="{{c in currencies}}">
<paper-item>{{c}}</paper-item>
</template>
</core-menu>
</paper-dropdown>
</paper-dropdown-menu>
Dart:
void selectCurrency(CustomEvent e, var detail, PaperDropdownMenu m) {
var id = m.getAttribute("selected");
//id = mCurrencyDropdown.selected;
JsObject detail = new JsObject.fromBrowserObject(e)['detail'];
if(detail['isSelected']) {
PaperItem selected = detail['item'] as PaperItem;
print( 'source | $selected' );
}
print(detail);
}
Я вижу несколько свойств, из которых я могу получить требуемую информацию, но я не могу получить к ним доступ, поскольку они не являются общедоступными: https://drive.google.com/file/d/0B9-4jVIpB0XuTXJ5eVBMZllyanM/view
Любая идея? Спасибо!
Благодаря Гюнтеру я нашел ответ:
У меня есть такая наблюдаемая:
@observable int selectedCurrency = 20;
По-видимому, вы можете просто добавить метод в свой класс, соответствующий имени члена, как это, и он вызывается каждый раз, когда изменяется наблюдаемое:
selectedCurrencyChanged(var oldValue, var newValue) {
print(newValue);
}
1 ответ
Решение
Где находится поле selectedCurrency, к которому вы привязаны?
Я думаю, вы можете бросить on-core-select
обработчик событий целиком и вместо этого добавить метод
selectedCurrencyChanged(newValue) {
// event handler code here
}