Polymer 数据绑定-主机属性存在但未声明
我正在审查,特别是数据绑定 在blog-pages.html中,主机属性Polymer 数据绑定-主机属性存在但未声明,polymer,polymer-1.0,Polymer,Polymer 1.0,我正在审查,特别是数据绑定 在blog-pages.html中,主机属性isLoading、postsActive和postsData未声明为blog-pages主机属性。这是怎么可能的,因为它们是博客页面主机属性 <app-route route="{{route}}" pattern="/posts/:slug" active="{{postsActive}}" data="{{postsD
isLoading
、postsActive
和postsData
未声明为blog-pages
主机属性。这是怎么可能的,因为它们是博客页面
主机属性
<app-route route="{{route}}"
pattern="/posts/:slug"
active="{{postsActive}}"
data="{{postsData}}"></app-route>
<list-page category="{{category}}"
active={{listActive}}
loading="{{isLoading}}"></list-page>
<post-page post="{{postsData.slug}}"
active="{{postsActive}}"
loading="{{isLoading}}"></post-page>
<div class="overlay" hidden$="[[!isLoading]]">
<paper-spinner active="[[isLoading]]"></paper-spinner>
</div>
</template>
<script>
Polymer({
is: 'blog-pages',
observers: [
'_lockScroll(isLoading)'
],
_lockScroll: function(isLoading) {
if (isLoading) {
document.body.style.overflow = 'hidden';
} else {
document.body.style.overflow = 'visible';
}
}
});
</script>
</dom-module>
聚合物({
是:“博客页面”,
观察员:[
'锁定卷轴(isLoading)'
],
_锁定滚动:功能(isLoading){
如果(孤岛加载){
document.body.style.overflow='hidden';
}否则{
document.body.style.overflow='可见';
}
}
});
这不是聚合物工作原理的最佳示例。。对于初学者来说,这可能会令人困惑。您编写的所有这些变量都是由某些聚合物的元素定义的
例如,在blog app.html
中,您可以看到app route
,它具有属性数据
、尾部
和模式
。当您查看app route.html
文件时,可以看到属性tail
具有notify:true
选项。这意味着,它将把这个属性传播到父元素。因此,当您在应用程序路由中定义绑定时,比如:
,那么在您的元素中将存在someProp
属性
其他文件也是如此。例如,看看isLoading
。在blog pages.html
中,您可以看到有绑定到isLoading
,但它没有定义。是的。在子元素中。因此,打开list page.html
并查看
,您可以看到load=“{{loading}}”
。同样的。查看ironajax.html
中的内容,并找到属性loading
。你看到了什么?再次notify:true
选项。这意味着,它被传播到父级(list page.html
),并且在list page.html
中,您可以看到还定义了load
属性,该属性具有notify:true
,因此它再次被传播到父级(blog page.html
)因为在blog pages.html
中我们有bindingload=“{{isLoading}}”
,所以它被保存到isLoading
属性中
这就是聚合物的工作原理。。这个项目的例子真的很难理解,对于初学者来说这是不可能的。我希望我的解释能帮你一点忙,但我想你现在更糊涂了
如果你有更多的问题,那就问吧。解释一些东西没有问题我完全理解数据绑定以及它是如何工作的,我已经使用过很多次了-我的问题不是数据绑定是如何工作的。我的问题是这个例子如何与文档相关。有目标属性和主机属性。在博客页面中,
isLoading
是博客页面的主机属性,它可以存在并使用,而无需在博客页面中声明。与postsActive
相同。最好指定您的问题。在第一句话中,您询问了数据绑定。没有关系。。。。。。。我试图阅读有关绑定的全部文档。。是的,有些主机属性确实存在。我认为这可能与普通javascript数组和指向内存的对象“指针”有关。。但这只是讨论。我会让别人回答你的问题。。我不知道为什么会投反对票。阅读一些Polymer 2.0文档,他们提到了绑定中的隐含的主机属性。我认为这可能是Polymer 1.0的一个特性,但在Polymer 1.0文档中没有提到。谢谢你的帮助。