簡體   English   中英

聚合物v 1.0 ..在帶注釋的事件處理程序中傳遞值

[英]polymer v 1.0 .. pass values in annotated event handlers

我想知道如何在將值注釋到模板中的元素時將值傳遞給事件處理程序。

這有效:

 <button on-click="handleClick">

但這不是

<button on-click on-click="handleClick(someValue)">

有辦法嗎?

尚不清楚您要完成什么。 因此,您可能需要澄清一下。 但是,想一想,聽起來我仍然可以為您提供幫助...

查看這個Stack Overflow問題 ,可接受的答案和我的評論。

阿米特指出,您可以使用HTML5自定義( data- )屬性。 像這樣:

<paper-button id="foo" on-tap="bar" data-args="foo,some other value,2">Click</paper-button>
...
<script>
(function() {
  Polymer({
    is: 'example',
    properties: {...},
    bar: function(e){
      var args = e.target.getAttribute('data-args').split(',');
      // now args = ['foo', 'some other value', '2']
    }
  });
})();
</script>

對我有用。 但是,在我的特定用例中,我必須使用: Polymer.dom(e).path[2].getAttribute('data-args')

要了解更多信息,您可以閱讀有關事件重定向的參考

如果處理程序的作用域位於host元素內部,則可以向該元素添加一個自定義屬性,並在該屬性中提供一個綁定到該屬性的參數。 您將只能為該屬性提供一個參數,可以使用一個對象。 但是,可以在宿主元素結構之外處理帶注釋的事件,這將意味着其他事情。 使用傳入的事件始終有效。 通過引用元素本身,您還可以訪問這些屬性和綁定以及屬性。

<dom-module id="awesome-element">
    <template>
        <h1>Awesome Element</h1>
        <content></content>
    </template>
    <script>
        polymer({
            is:'awesome-element',
            properties{
                onearg: {
                    type: String,
                    value: ''
                },
                handleClick: function(e){
                    console.log(this.onearg);

                }
            }
        });
    </script>
<dom-module>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM