javascript - 如何使用 Polymer 1.0 dom-bind 公开局部变量

标签 javascript data-binding polymer web-component polymer-1.0

我创建了一个 polymer 元素,需要 Canvas 2d 上下文作为属性才能工作,并且我正在尝试从同级 Canvas 标签中获取它。

我见过https://www.polymer-project.org/1.0/docs/devguide/templates.html ,但它没有回答我的问题。

这是我现在所做的:

<body>
<template id="app" is="dom-bind">
    <my-element id="renderer" context="{{ context }}"></my-element>
    <canvas id="rendering-canvas"></canvas>
</template>
<script>
    (function (document) {
        'use strict';
        var app = document.querySelector('#app');

        app.addEventListener('template-bound', function () {
            console.log('Our app is ready to rock!');
        });

        window.addEventListener('WebComponentsReady', function () {
            document.querySelector('body').removeAttribute('unresolved');

            var renderer = document.querySelector('my-element[id=renderer]'),
                canvas = document.querySelector('canvas[id=rendering-canvas]');

            app.context = canvas.getContext('2d');
        });
    })(document);
</script>
</body>

编辑:我的元素

Polymer({
        is : 'my-element',
        properties: {
            type: {
                type: String,
                value: 'Text'
            },
            context: {
                type: CanvasRenderingContext2D
            }
        }
    });

我的主要问题是如何处理类似 context="canvas.getContext('2d')" 的内容?现在 my-element 的上下文属性尚未设置。

最佳答案

<my-element id="renderer"></my-element>
<canvas id="rendering-canvas"></canvas>

<script>
    (function (document) {
        'use strict';

        window.addEventListener('WebComponentsReady', function () {
            document.querySelector('body').removeAttribute('unresolved');

            var renderer = document.getElementById('renderer'),
                canvas = document.getElementById('rendering-canvas');

            renderer.context = canvas.getContext('2d');
        });
    })(document);
</script>

关于javascript - 如何使用 Polymer 1.0 dom-bind 公开局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31268478/

相关文章:

dart - 似乎设置了一个单向数据绑定(bind),即使它应该是双向的

javascript - 全局安装后找不到模块 'socket.io'

javascript - 在 Array(3) 与 [1,2,3] : why are they different 之间映射常量函数

javascript - 如何在 ionic 应用程序内正确实现单点登录

javascript - 如何创建像指标一样的循环进度(饼图)

c# - 数据绑定(bind)到异构列表

c# - Windows 窗体数据绑定(bind)

java - 自定义控件中的android数据绑定(bind)

Dart PaperDropdownMenu 获取所选项目

javascript - 模板化中的自定义计算函数 `<template>`