首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火狐上的Polymer.js组件

火狐上的Polymer.js组件
EN

Stack Overflow用户
提问于 2015-07-22 16:46:36
回答 1查看 491关注 0票数 0

我对火狐的Polymer.js有一个问题。

这是我的聚合物元素。

代码语言:javascript
复制
<!-- Imports polymer -->
<link rel="import" href="../../bower_components/polymer/polymer.html">

<!-- Defines element markup -->
<dom-module id="scoreboard-bar">
    ...
    <script>
        Polymer({
            is: 'scoreboard-bar',
            properties: {
                totalCounter: {
                    type: Number,
                    value: 0
                },
            },
            getTotalCounter: function () {
                return this.totalCounter;
            },
            setTotalCounter: function (totalCounter) {
                this.totalCounter = totalCounter;
            },
        });
    </script>
</dom-module>

这是将聚合物组件导入主html文件:

代码语言:javascript
复制
<head>
    <!-- Imports polyfill -->
    <script src="{% static "polymer/bower_components/webcomponentsjs/webcomponents-lite.min.js" %}">  </script>

    <!-- Imports custom elements -->
    <link rel="import" href="{% static "polymer/components/entity-vibeboard/scoreboard-bar.html" %}">
</head>

若要在加载页时设置计数器,请执行以下操作:

代码语言:javascript
复制
<body>
    <div>
        <scoreboard-bar id="scoreboardBarFlag"></scoreboard-bar>
    </div>

    <script>
        $( document ).ready(function() {
            var scoreboardBarFlagPolymer = document.querySelector('#scoreboardBarFlag');
            scoreboardBarFlagPolymer.setTotalCounter(10);
        });
    </script>
</body>

这段代码在Google上运行得很好,但在Firefox上却不起作用。我收到的错误是:

代码语言:javascript
复制
TypeError: scoreboardBarFlagPolymer.setTotalCounter is not a function

如果我在Firebug上添加一个断点,进行调试,这个函数在聚合物组件上是可用的,但是在加载页面之后它就不可用了。

我认为这个错误是因为javascript函数试图在加载页面上的聚合物组件之前设置计数器。

知道如何在加载页面上的所有聚合物组件后运行javascript函数吗?问题是,它只在Firefox上,在Chrome上--它很好用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-22 18:13:46

尝试侦听WebComponentsReady事件,如所描述的在webcomponents.js文档中

代码语言:javascript
复制
window.addEventListener('WebComponentsReady', function(e) {
  // imports are loaded and elements have been registered
  console.log('Components are ready');
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31569251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档