- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不仅可以传递字符串属性,还可以传递对事件处理程序的对象引用吗?
来自 https://github.com/sethladd/dart-polymer-dart-examples 的示例 gwt_contacts :
contacts_view.html:
<div id="contact-list">
<template repeat="{{contacts}}">
<div>
<input type="checkbox">
<span on-click="selectContact" data-id="{{id}}">{{name}}</span>
</div>
</template>
</div>
contacts_view.dart 中的处理程序
void selectContact(MouseEvent event, var detail, SpanElement target) {
String id = target.attributes["data-id"];
selectedContact = contacts.firstWhere((Contact contact) => contact.id == id);
}
如何传递联系人引用而不是 ID?
类似问题:How do I pass arbitrary data to a click event handler function from a Dart polymer web component
更改:
根据 Christophe Herreman 的提示,我添加了一个新元素:
html:
<polymer-element name="contact-view-item">
<template>
<span on-click="select">{{contact.name}}</span>
</template>
</polymer-element>
Dart :
@CustomTag("contact-view-item")
class ContactViewItem extends PolymerElement {
@observable @published Contact contact;
void select(MouseEvent event, var detail, var target) {
dispatchEvent(new CustomEvent("contactselected", detail: contact));
}
}
并将列表更改为:
<div id="contact-list">
<template repeat="{{contact in contacts}}">
<div>
<input type="checkbox">
<contact-view-item contact="{{contact}}" on-contactselected="contactSelectedHandler"></contact-view-item>
</div>
</template>
</div>
并将处理程序添加到 ContactsView:
void contactSelectedHandler(CustomEvent event) {
selectedContact = event.detail;
}
但是调度自定义事件会抛出错误:
Uncaught Error: unsupported object type for conversion
Exception: unsupported object type for conversion
undefined (undefined:0:0)
连接似乎很好,因为如果我不将联系人作为详细信息传递,则将调用 contactSelectedHandler,但详细信息当然是 null。
最佳答案
我认为在 HTML 定义中不可能以声明方式实现这一点。当您从元素类分派(dispatch)对象时,您可以在 CustomEvent
的 detail
属性中分派(dispatch)对象。请注意,当事件是 CustomEvent
时,detail
属性实际上只是对 event.detail
的引用。如果不是,则 detail
属性为 null。
组件定义
<div id="contact-list">
<template repeat="{{contacts}}">
<div>
<input type="checkbox">
<span on-click="contact_clickHandler" data-id="{{id}}">{{name}}</span>
</div>
</template>
</div>
void contact_clickHandler(MouseEvent event, var detail, SpanElement target) {
String id = target.attributes["data-id"];
Contact contact = contacts.firstWhere((Contact c) => c.id == id);
dispatchEvent(new CustomEvent("contactselected", detail: selectedContact));
}
组件使用
<contact-list on-contactselected="contactList_contactSelectedHandler"></contact-list>
void contactList_contactSelectedHandler(CustomEvent event) {
var contact = event.detail;
// do something with selected contact
}
关于dart - 如何将对象引用传递给 dart 聚合物元素内的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19335691/
我试图找到一些有关样式化聚合物 Dart 元素的信息,但没有成功。关于Stackoverflow的所有信息似乎均无效。有谁知道有关聚合物元素造型的一些最新信息? 我已经知道可以在哪里使用..标签。我尝
我有一个问题,我无法解决它。 我有 2 个聚合物元素嵌套。 主要 HTML 页面: index.html 在聚合物 HTML 定义中: polycontainer.html
我对 Dart 的新功能很满意。 但是,我想在 web 组件(聚合物)中使用 像这样: 文件.dart enum Categoria {ID, DESCRICAO, NATUREZA, ID_SUBC
我想遍历自定义聚合物元素的所有子元素 - 例如,将每个子元素放在一个新的 div 中。 {{child}} 当我尝试这个时,我得到了 child 的 toString() 版本
我有一个可以成功登录用户的函数。 _login: function() { var email = this.$.emailvalue.value; var password = this
当我使用 Polymer 库创建新应用程序时,它会生成一个示例项目。该项目在 Dartium 中运行良好,但当我编译它时(使用 pub build),它不再运行了。 我收到两个 404 错误和一个未捕
我尝试向一些动态创建的元素添加事件监听器,但我无法定位它们。 //here is how I try to access it _buildTable(data) { this.$.spinn
在 firebase-login 元素中我有 Login toggleLogin 调用的位置: toggleLogin: function() {this.$.loginModa
我是聚合物的新手。所以我只是按照教程。而且我不知道为什么屏幕上没有显示详细信息。 这是来自网络的代码:(指数) 第一聚
在聚合物中,我正在尝试手动提交表格。我的表格如下所示: Submit 在聚合物对象中,我有: submitForm: function(e) { e.preventDef
我正在尝试使用 Polymer 2.0 创建一个混合应用程序。我已经使用了polymer-2-application 和polymer-2-starter-kit 示例,并且在safari 浏览器上测
如何在点击时在函数内传递dom重复项?我的代码不起作用: {{item.name}} Polymer({ is: 'my-element',
如何获取iron-list中某些元素的模型?该文档建议: ($['list'] as IronList).modelForElement(target).index 但modelForElement(
我正在摆弄聚合物 Dart 0.10.0-pre.10 的"new"说明,才意识到我有包 0.9.5安装(在更新的 Dart 编辑器上)。并且只能使用 main() => dostuff(); 运行代
我正在Dart上开发我的第一个“复杂”应用程序,并且在使用多个 View 时遇到了一些麻烦(我想将应用程序开发为在单个页面中运行)。 首先,我假设此方法(使用Polymer)是处理应用程序各种 Vie
任何人都知道是否可以在 Dart 应用程序中使用常规的 html 5/javascript Web 组件库?我认为从现在开始,将会出现很多 html 5/javascript 中的 Web 组件库,它
我有以下代码。问题是我无法编辑div的内容。 div的确看起来像是一个可内容编辑的div,但它并不像它那样工作。我实际上无法编辑任何文本。我在某处犯错了吗? Content import
我正在尝试使用 Dart 和 Polymers 创建一个示例 CRUD 应用程序。 我注意到几乎所有 Dart 聚合物示例只有一页。我正在尝试寻找具有多页的样本。 IE。 屏幕包含人员对象表 然后,当
我正在尝试聚合物元素,目前正在尝试纸质表单元素。 我还没有设法找到是否可以在 Javascript 变量中获取纸质表单有效的事实。有什么想法吗? 我正在使用自动验证。 非常感谢! 最佳答案 p
我打算在 Polymer 中创建一个 classMixin,它提供自定义方法并将被其他元素继承。 一切都按预期工作,但我也想继承一些属性。 static get properties() {
我是一名优秀的程序员,十分优秀!