Как открыть локальные переменные с помощью Polymer 1.0 dom-bind

Я создал полимерный элемент, которому для работы нужен контекст холста 2d в качестве атрибута, и я пытаюсь получить его из родственного тега холста.

Я видел 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')"? Прямо сейчас свойство контекста моего элемента не установлено.


person FXG    schedule 07.07.2015    source источник
comment
Привет! @FXG, кто является контекстом в вашем вопросе (context=canvas.getContext('2d')? Я использую ваш код, а мой app.context — CanvasRenderingContext2D {}. Неверно?   -  person horacioibrahim    schedule 07.07.2015
comment
Также мой-element.context такой же (CanvasRenderingContext2D).   -  person horacioibrahim    schedule 07.07.2015
comment
@horacioibrahim Да, но этот контекст не передается как атрибут моего элемента my-element. Я отредактирую свой вопрос, чтобы быть более ясным.   -  person FXG    schedule 07.07.2015
comment
Polymer перечисляет следующие доступные типы свойств: Boolean, Date, Number, String, Array or Object. Так что я не думаю, что это будет работать так, как у вас сейчас. Может Object подойдет?   -  person anthony    schedule 07.07.2015
comment
Я нашел это, это была проблема на моей стороне элемента. Изменения в свойстве контекста не были отражены, поскольку атрибуты, использующие его, были созданы на готовой функции. Я создал метод наблюдателя и применил свои изменения здесь. Теперь это работает.   -  person FXG    schedule 08.07.2015