【问题标题】:Declaration custom element in html without code behind in the Polymer library在 html 中声明自定义元素,在 Polymer 库中没有代码
【发布时间】:2014-07-04 00:19:10
【问题描述】:

我可以只在 html 文件中声明自定义元素,而在 Polymer 库中没有 dart 代码(.dart 文件)吗?

我希望只有一个自定义元素的 html 标记。此外,标记可能包含一些内联 dart 代码(例如,初始化代码和事件处理方法)。有可能吗?

【问题讨论】:

    标签: dart dart-polymer


    【解决方案1】:

    编辑

    未测试,但我认为它应该可以工作

    <polymer-element name='my-element'>
      <template>
        <div>some content</div>
        <button on-click='{{clickHandler}}'>click me</button>
      </template>
      <script type='application/dart'>
    import 'package:polymer/polymer.dart';
    
    @CustomTag('my-element') 
    class MyElement extends PolymerElement {
      MyElement.created() : super.created();
    
      void clickHandler(Event e) {
        print(e.target.toString());
      }
    }
    
      </script>
    </polymer-element>
    

    编辑结束

    只需添加属性noscript

    <polymer-element name='my-element' noscript>
      <template>
        <div>some content</div>
      </template>
    </polymer-element>
    

    在 Dart 中,从这样的组件 (&lt;polymer-element name='my-other-element' extends='my-element&gt;...) 继承并不能很好地工作,特别是如果派生元素具有关联的 Dart 类(在 Polymer.js 中工作正常)。

    【讨论】:

    • 君特,非常感谢!有用!您能否通过在 html 页面中使用内联 dart 代码进行事件处理的代码示例来补充您的答案(如果可能的话)。
    • 我不确定你想要什么。我以为问题是关于没有代码的聚合物元素,现在你想要内联代码吗?内联代码只是组织文件的另一种方式。使用内联代码可以做的事情没有任何限制(除了更糟糕的开发人员体验)。我建议不要这样做。您将代码内联到 HTML 文件中的原因是什么?
    • 我的问题是关于如何在没有 .dart 文件的情况下声明自定义元素。我有很多小的自定义元素。我不想为每个元素(.html 和 .dart)创建两个文件。我知道这通常是更糟糕的开发人员体验。但对我来说不是。
    • 我还没有使用过这个,但据我所知,您只需将代码放在&lt;script type='application/dart'&gt;your code here &lt;/script&gt; 中,而不是引用*.dart 文件的src 属性中。您应该更新您的问题,以便更清楚地了解您想知道的内容。
    猜你喜欢
    • 2019-04-14
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多