dart - dart 中 Paper 元素的实例

标签 dart dart-polymer paper-elements

如何获取下面的 paper-input 元素的实例?

HTML 文件:

<!DOCTYPE html>
<html>
<head>
  <!-- <script src='packages/web_components/platform.js'></script>
       not necessary anymore with Polymer >= 0.14.0 -->
  <script src='packages/web_components/dart_support.js'></script>    
  <link rel='import' href='packages/paper_elements/paper_input.html'>
  <script src='packages/browser/dart.js'></script>
</head>
<body fullbleed unresolved>
  <paper-input id='subject' label='subject'></paper-input>
  <script type='application/dart' src='myscript.dart'></script>
</body>
</html>

myscript.dart:

import 'dart:html';
import 'package:polymer/polymer.dart';
import 'package:paper_elements/paper_input.dart';
export 'package:polymer/init.dart';
PaperInput _subject = querySelector('#subject');    // exception
void main() {
  ...
}

这会导致异常:

Breaking on exception: type 'HtmlElement' is not a subtype of type 'PaperInput'

从 HtmlElement 转换为 PaperInput 不起作用。建议包括使用 shadowRoot.querySelector('#subject'); 和其他 shadowRoot 用法,但它来自哪里?如果我将 .shadowRoot.querySelector('paper-input') 附加到 myscript.dart 的最后一行,则该元素为 null。如果我使用 id 而不是标签名称,结果相同。该元素本身是 html body 的顶层,因此它不在任何其他 ShadowRoot 中。

如果paper-input不是PaperInput类的内容,就无法获取它的内容。但似乎没有办法施放它。

最佳答案

你遇到how to implement a main function in polymer apps

当您像下面所示或在 Polymer 元素内部(super.attached() 之后的 attached() 或在某些点击或其他事件处理程序中(当元素已正确初始化)

main() {
  initPolymer().run(() {
    // code here works most of the time
    Polymer.onReady.then((_) {     
      // some things must wait until onReady callback is called
      // for an example look at the discussion linked below

      PaperInput _subject = querySelector('#subject');
    });
  });
}

关于dart - dart 中 Paper 元素的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24745751/

相关文章:

dart - 从 DOM 中移除元素

从列表中删除项目后,Flutter Slidable 保持打开状态

dart - 即使使用 _ 表示私有(private),我可以将其设置为属性吗?

annotations - 如何创建自定义的Polymer和PolymerDart注释?

polymer - paper-listbox,当将selected设置为id(int)时,不会选择具有相同值的input

flutter - setstate后flutter_webview_plugin监听器(onHttpError)无法正常工作

dart - Flutter 复选框类 : When I tick a card, 所有其他的也都被选中

dart - 调试 Angular 和 Polymer dart

dart - 如何在AngularDart组件中删除聚合物 paper 列表框项目

dart - 防止 paper 对话框自动关闭