Javascript 无法绑定到自定义元素';放置在模板中的属性

Javascript 无法绑定到自定义元素';放置在模板中的属性,javascript,html,polymer,Javascript,Html,Polymer,我最近一直在试用聚合物,并编写了以下示例。问题是,如果我试图在模板中放置一个自定义元素,绑定就不能按预期工作 我想在颜色托盘内移动滑块并更改名称的颜色,但更改对颜色没有任何影响。如果我将滑块直接放在模板内,它将按预期工作 我是否遗漏了什么,或者聚合物还不支持这种绑定?我使用的是带有Chrome 27.0.1453.93的d14278cfceb87f68b2d0241ec704c6a646f246bf index.html {{name}} r g b var t=document.ge

我最近一直在试用聚合物,并编写了以下示例。问题是,如果我试图在模板中放置一个自定义元素,绑定就不能按预期工作

我想在颜色托盘内移动滑块并更改名称的颜色,但更改对颜色没有任何影响。如果我将滑块直接放在模板内,它将按预期工作

我是否遗漏了什么,或者聚合物还不支持这种绑定?我使用的是带有Chrome 27.0.1453.93的d14278cfceb87f68b2d0241ec704c6a646f246bf

index.html


{{name}}

  • r
  • g
  • b
var t=document.getElementById('inputArea'); var模型={ 动物:[ { 名称:“长颈鹿”, 颜色:{ 红色:255, 绿色:255, 蓝色:0 } }, { 名称:“土豚”, 颜色:{ 红色:255, 绿色:0, 蓝色:0 } }] }; t、 模型=模型;
color-pallet.html

聚合物。注册(本{ 红色:0,, 绿色:0, 蓝色:0 });
这里的问题是,Polymer不知道如何在
#inputArea
的模型和
的实例之间设置双向更改。
.model
属性是对MDV中的
的一个半新添加

编辑:这实际上是由于在MDV尝试在模板中绑定到元素定义之前,
元素定义不可用造成的。这是自定义元素polyfill的一个限制,我们可以在本机实现准备就绪之前尝试减轻影响

如果将模型分配包装在“WebComponentsReady”事件的处理程序中,这将按预期工作

document.addEventListener('WebComponentsReady', function() {
  t.model = model;
});

你好我试着在WebComponentsReady事件监听器中使用inputArea的模型,现在
之间的绑定似乎还可以。但是,滑块和文本框(显示滑块值)之间的绑定现在已断开。有没有一种方法可以同时绑定span样式和文本框?@ScottMiles-Hmm。。。由于某种原因,它在我的环境中不起作用。我尝试将Chrome更改为29.0.1521.3 dev,但仍然没有效果。你在使用哪个浏览器?@rillomas:tested on:Chrome(stable)27.0.1453.94 m/Chrome(canary)29.0.1523.0 canary/Firefox 21.0(范围滑块只是文本输入,但可以工作)@ScottMiles我尝试了你与Chrome 29.0.1523.0 canary的链接(启用从chrome://flags),但是当我移动滑块时,文本框值不会更新。无论我移动滑块多少,它们都保持在255。这就是您看到的,还是文本框值在您的环境中更新了?好的。事实证明,如果我关闭enable javascript和谐,那么示例就可以工作了。
<element name="color-pallet" attributes="red green blue">
    <template>
        <ul>
            <li><input type="range" min="0" max="255" value="{{red}}"><input readonly type="text" value="{{red}}"></li>
            <li><input type="range" min="0" max="255" value="{{green}}"><input readonly type="text" value="{{green}}"></li>
            <li><input type="range" min="0" max="255" value="{{blue}}"><input readonly type="text" value="{{blue}}"></li>           
        </ul>
    </template>
    <script>
        Polymer.register(this, {
            red: 0,
            green: 0,
            blue: 0
        });
    </script>
</element>
document.addEventListener('WebComponentsReady', function() {
  t.model = model;
});