小编dav*_*dig的帖子

在动态添加dart聚合物元素时,如何在DOM上获取可观察变量

我正在尝试更改使用聚合物库的默认Web应用程序,以便创建聚合物元素并将其从DART代码添加到DOM,而不是包含在HTML中.我已成功将元素添加到DOM中,但我的可观察变量未在DOM上更新.事件正在被解雇,价值正在发生变化.我使用Observable.dirtyCheck()来更新DOM,但是,这显然很昂贵,所以我试图找出如何让聚合物更新dom而不使用dirtyCheck().

所以,简而言之,我如何摆脱Observable.dirtyCheck()???

dynamiccreate.dart

library dynamiccreate;

import 'dart:html';
import 'package:polymer/polymer.dart';



main() {
  initPolymer();

  //create click-counter element at runtime from DART, not HTML
  var NewElement = new Element.tag('click-counter');
  NewElement.setAttribute("count", "5");
  //Add to DOM
  querySelector('#sample_container_id').children.add(NewElement);
}
Run Code Online (Sandbox Code Playgroud)

dynamiccreate.html

<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8">
    <title>Sample app</title>
    <link rel="stylesheet" href="dynamiccreate.css">

    <!-- import the click-counter -->
    <link rel="import" href="clickcounter.html">
    <!-- <script type="application/dart">export 'package:polymer/init.dart';</script> -->
    <script src="packages/browser/dart.js"></script>
  </head>
  <body>
    <h1>DynamicCreate</h1>

    <p>Hello world from Dart!</p>

    <div id="sample_container_id">
     <!--  <click-counter count="5"></click-counter> -->
    </div>
    <script src="dynamiccreate.dart" type="application/dart"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

clickcounter.dart …

dart dart-polymer

2
推荐指数
1
解决办法
2781
查看次数

标签 统计

dart ×1

dart-polymer ×1