Dart 如何在a内制作省道纸按钮<;模板>;看得见的
我想使用聚合物Dart 如何在a内制作省道纸按钮<;模板>;看得见的,dart,polymer,Dart,Polymer,我想使用聚合物纸张按钮。它在程序的顶层使用,例如,不在另一个polymerement中使用 如何为该纸张按钮注册onClick或onTap处理程序?PaperButton类中不存在此类方法,HTML文件中的属性声明不可能超出polymerement派生类的范围 除非您使用指令。版本适用于正常的但我不知道如何显示 下面是显示问题的最简单代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8">
纸张按钮
。它在程序的顶层使用,例如,不在另一个polymerement
中使用
如何为该纸张按钮注册onClick
或onTap
处理程序?PaperButton
类中不存在此类方法,HTML文件中的属性声明不可能超出polymerement
派生类的范围
除非您使用
指令。
版本适用于正常的
但我不知道如何显示
下面是显示问题的最简单代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Paper Button</title>
<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="packages/paper_elements/paper_button.html">
</head>
<body unresolved>
<template is="auto-binding-dart">
<paper-button id="mybutton" on-tap="{{buttonTap}}">Button</paper-button>
</template>
<script type="application/dart">
import 'dart:html';
import 'package:polymer/polymer.dart';
import 'package:template_binding/template_binding.dart';
main() {
initPolymer().run(() {
Polymer.onReady.then((_) {
var template = document.querySelector('template');
templateBind(template).model = new MyModel();
});
});
}
class MyModel extends Observable {
buttonTap() => print('Clicked!');
}
</script>
</body>
</html>
纸扣
按钮
导入“dart:html”;
进口“包装:聚合物/聚合物.dart”;
导入“package:template_binding/template_binding.dart”;
main(){
initPolymer()运行(){
聚合物。onReady。然后((){
var template=document.querySelector('template');
templateBind(template.model=newMyModel();
});
});
}
类MyModel扩展了可观测{
buttonTap()=>打印('Clicked!');
}
如果我将其从纸张按钮
更改为按钮
,并删除纸张按钮
的导入语句,则其工作正常。但是如何使用纸按钮
或任何类型的聚合物元素来实现这一点呢?更新
您在注释中提到的错误消息使用下面建议的代码
第一行创建运行时错误
NoSuchMethodError:找不到方法:“模型=”
第二个建议产生了错误
异常:>未捕获错误:“TemplateElement”类型不是“template”的“AutoBindingElement”类型的子类型
指示querySelector('template')
不返回
,而是返回其他模板
元素(导入的纸张按钮
元素)
相反,使用不同的选择器(例如id)可以解决问题
古老的
这看起来不错,但这一行对我来说似乎是错误的(但如果它适用于按钮,那么它也应该适用于纸张按钮
)
templateBind(template.model=newmymodel();
反而
template.model=new MyModel();
太好了!
应该做
或
autobindingement template=document.querySelector('template');
template.model=新的MyModel();
防止关于不存在的模型的提示
您不应该需要此导入(仅在您自己的元素中)
我从不使用内联脚本。这可能会导致问题。第一行创建了一个运行时错误NoSuchMethodError:method not found:'model='
。第二个建议创建了错误异常:未捕获错误:“TemplateElement”类型不是“template”的“autobindingement”类型的子类型。
可能您会得到另一个templateate元素(来自导入的纸张按钮的元素)
?)。能否尝试将id
分配给模板
,并更改选择器,使其使用id而不是标记名?是的,导入的纸张按钮的模板提示将其锁定!使用id
检索模板解决了问题!