2015-02-07 19 views
1

我很掙扎得到選定的項目ID或甚至顯示在下拉菜單列表中的文本。這裏是我的代碼: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> 

飛鏢:

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); 
} 

Official Documentation

回答

1

您選擇的貨幣字段在哪裏?

我想你可以完全刪除on-core-select事件處理程序,而是添加了一個方法

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

及其結合到指示當前選擇的貨幣的int:@observable INT selectedCurrency = 20;綁定雙向? – fusion44 2015-02-07 21:37:26

+0

非常感謝你!用兩個參數添加方法完美無瑕。我一直在搜索文檔幾個小時,而沒有絆倒像這樣的功能。我將用更詳細的描述更新我的文章。 – fusion44 2015-02-07 21:45:54