【问题标题】:Dart PaperDropdownMenu getting selected itemDart PaperDropdownMenu 获取所选项目
【发布时间】:2015-02-08 05:51:12
【问题描述】:

我在获取所选项目的 ID 甚至是下拉菜单列表中显示的文本时有些吃力。这是我的代码:

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>

飞镖:

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

有什么想法吗?谢谢!

感谢 Günter,我找到了答案:

我有一个像这样的 observable:

@observable int selectedCurrency = 20;

显然,您可以像这样简单地向您的类添加一个匹配成员名称的方法,并且每次更改可观察对象时都会调用它:

selectedCurrencyChanged(var oldValue, var newValue) { 
    print(newValue);
}

Official Documentation

【问题讨论】:

    标签: dart polymer paper-elements


    【解决方案1】:

    您绑定的字段 selectedCurrency 在哪里?

    我猜你可以完全删除on-core-select 事件处理程序,而是添加一个方法

    selectedCurrencyChanged(newValue) { 
      // event handler code here 
    }
    

    【讨论】:

    • 它绑定到一个int,表示当前选择的货币:@observable int selectedCurrency = 20;绑定是双向的吗?
    • 好的,非常感谢!添加带有两个参数的方法完美无缺。我已经搜索了几个小时的文档而没有偶然发现这样的功能。我将用更详细的描述更新我的帖子。
    猜你喜欢
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多