1

我正在尝试直接从 Javascript 实例化 Web 组件,但系统找不到公共构造函数。我将举一个简单的例子来展示上下文和结果:

HTML 模板:

<polymer-element name="wc-foo" constructor="Foo" noscript>
    <template>
       Hello World!
    </template>  
</polymer-element>

HTML索引:

<html>
<head>
    <script src="general/scripts/polymer/polymer.min.js"></script>
    <link rel="import" href="...">
</head>

<body>  
</body>

<script>
    console.log (window); // (1)
    console.log (window.Foo); // (2)
    var foo = new Foo (); // (3)
</script>

</html>

控制台结果:

(1) 我检查了 window 对象,它包含构造函数 Foo: function (){return f(a)} (2) 我不知道是什么但 window.Foo 返回 undefined (3) ...所以, new Foo() 失败:未捕获的 ReferenceError:未定义 Foo

有人可以帮助我了解问题所在吗?谢谢。

4

1 回答 1

3

您需要等待polymer-ready事件触发以确保 Polymer 已完成设置:

document.addEventListener('polymer-ready', function() {
  console.log (window.Foo); // (2)
  var foo = new Foo (); // (3)
  console.log(foo)
});

演示:http: //jsbin.com/dabaloso/1/edit

于 2014-03-06T00:15:04.083 回答