首页 文章

在应用程序外部使用Polymer <app-route>元素?

提问于
浏览
0

我正在构建一个使用Polymer Elements的网站(不是单页面应用程序) . 网站"app"不包含在 <dom-module> 中,但我仍然想要使用 <app-route> 元素 .

如果不创建包含整个站点的自定义"app-element",我怎么能这样做(我尝试将它全部放入 <dom-module> 但是有很多错误)?

如果我只是在 <body> 标签内使用 <app-route><app-location> ,我会得到一个

Uncaught TypeError: Cannot read property 'length' of undefined

即使我尝试以编程方式绑定路由/数据/尾部属性而不是使用例如 route="{{route}}" .

1 回答

  • 0

    不在另一个Polymer托管元素的上下文中的聚合物元素从浏览器的角度看作自定义标记 . 它们中的每一个都是封装的,并且具有各自独立的内部上下文,并且除了通过发送事件之外,设计元素不与外部上下文交互 .

    Polymer实现了一个中介模式,因此元素不会直接通信,即使它可能看起来如此,但是有各种各样的观察者设置了隐含的内容 . 因此,为了实现这种通信实际发生,您需要确保您的元素包含在某种Polymer管理的元素中 - 在您的情况下可能由Kuba Šimonovský dom-bind 辅助元素指出 .

    如果由于某种原因你不想使用该元素,你可以为你的元素实现自己的事件驱动的中介(不是真的推荐) .

相关问题