【问题标题】:Call method/event from html in dart在 dart 中从 html 调用方法/事件
【发布时间】:2014-05-22 08:47:57
【问题描述】:

我正在使用 dart,并且在我的 html 文件中有类似的内容:

<button doStuff="alert('test')"></button>

我想做一些类似飞镖的事情:

myButton.doStuff();

我该怎么做。代码必须带有 HTML 标签,最好是 .我不想创建任何自定义或第三方 UI 元素,例如聚合物。

谢谢:)

编辑:

问题变了,不好意思,我是这样想的:

//javascript code in the head of html
var htmlTag = getElementById('htmlTag');
htmlTag.doStuff(function() { 
   alert('test');
});

<!-- HTML code/ doStuff method not mentioned in the tag anymore  -->
<h1 id="htmlTag">

//dart code to call method doStuff
querySelector('#htmlTag')..doStuff();

如何使用给定的元素 button1 从 dart 调用 doStuff() 方法。谢谢

编辑 2: 我更改了html标签,因为按钮混淆了一些人

【问题讨论】:

  • 你为什么要这样做?
  • 我编辑了我的问题。
  • 这没有更多意义。您能解释一下您实际尝试完成的工作吗?我假设您想在有人单击按钮时执行代码。这不是你想要的吗?在这种情况下,您必须监听click 事件并传递一个在click 事件发生时执行的回调。要使您的 getElementById('button1') 工作,您应该将 id 添加到按钮 &lt;button id='button1'&gt;text&lt;/button&gt;
  • 不,我不想检查点击事件。我想要任何 html 标记,它也可以是一个

    具有像 doStuff 这样的回调方法,这是在我编辑的问题中显示的 html 文件的标题中实现的。这个 doStuff 应该从 dart 中调用,没有点击,没有拖动没有鼠标......只有在我想要的时候调用方法:) 所以必须有一个很好的 dart 代码,比如这个 htmlTagName.doStuff()。我希望现在更清楚了。谢谢

  • 我同意 Günter 的观点。这根本不符合逻辑。可以使用 dart 中的异步 Timer 类在间隔内运行函数。您可以运行一个将按钮作为参数获取的方法,而不是调用 doStuff。同样的故事,更漂亮。

标签: javascript html dart


【解决方案1】:

这在纯 Dart/HTML 中不起作用。 Polymer 和 Angular 为此类绑定提供支持(可能还有许多其他框架)。

您可以在如下代码中添加绑定:

querySelector('button').onClick.listen((e) => doStuff());

【讨论】:

  • 但这不会执行该元素的特定代码,对吧? doStuff() 必须是 dart 中指定的某个函数。
  • 什么元素?这是普通的 Dart ;-) 这个问题不包含任何关于 Polymer 的内容,所以我试图展示一个没有任何问题的解决方案。
  • 他有一个按钮元素。按钮元素有一个名为“doStuff”的属性,其中包含代码。我们想要执行这段代码。您的代码确实执行了一个函数,而不是属性中的代码。这通常没有意义,但你的回答并没有回答他的问题。
  • 我明白你的意思,但你的解释不像我自己的那样更有意义;-) 但我明白你为什么在问题中添加你的评论。
【解决方案2】:

听起来你真的想用doStuff 方法创建一个自定义元素。试试这个:

@CustomTag('my-button')
class MyButton extends ButtonElement with Polymer {
  MyButton.created() : super.created();

  doStuff() => alert('test');
}
<my-button id="htmlTag"></my-button>
@initMethod
main() {
  querySelector('#htmlTag').doStuff();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多