我正在考虑将Polymer用于我正在开发的新项目。我很幸运能够定位最新版本的Chrome。
我正在研究Polymer的原因之一是我明白使用新的Object.observe
进行数据绑定。 (我认为我说得对,如果我不是,请纠正我!)
我想要实现的一件事是能够针对我的视图模型运行我的测试,而不是使用gui测试工具。
...但据我所知,Polymer设置为Web组件实际上是视图模型。我说得对吗?现在我没有考虑聚合物测试,但我希望这意味着必须有一个DOM来测试......
现在,我可以添加一个" context"属性到每个Web组件并将JS视图模型绑定到该组件,并将所有绑定都设置为{{context.prop}}
,{{context.prop1}}
等...
这是否违反任何聚合物原则 - 我是否完全错误的想法?
示例元素:
<polymer-element name="my-element" attributes="context">
<template>
<textarea value="{{context.prop}}"></textarea>
</template>
<script>Polymer({});</script>
</polymer-element>
元素使用:
<my-element id="ele"></my-element>
<script>
var model = { prop: 'initial value' }
// wait for DOM to load - should really use some sort of "ready" event here...
setTimeout(
function() {
var ele = document.querySelector('#ele');
ele.context = model;
}, 3000);
Object.observe(model, function() { console.log('changed'); });
</script>