我创建了一个新的聚合物项目 .
通过终端 mkdir project; cd project; polymer init;
然后创建一个应用程序抽屉模板 .
什么是在 src/my-view2.html
中向my-view2元素添加行为的正确方法?
如果我在 src/some-behavior.html
创建行为
<script>
SomeBehavior = {
testing: function()
{ alert('hello'); }
}
</script>
然后在view2中导入它
<link rel="import" href="some-behavior.html">
并将其包含在聚合物中
Polymer({
is: 'my-view2',
behaviors: [SomeBehavior]
});
并在html中添加一个按钮来调用我刚刚创建的新功能 .
<button on-tap="testing">Test</button>
然后通过构建聚合物应用程序
sudo polymer build # im using sudo because my permissions are wrong
然后将 build/bundled
目录部署到firebase
sudo firebase deploy # same dodgy permission problem
这将适用于桌面:我已经使用最新版本的Chrome,Firefox和Safari进行了检查 .
但是在iOS上我遇到了一个问题,即view2页面没有加载 . 我已经在iPhone osx 9.3上测试过(我认为,无论如何最新的版本)然后在iPhone 4s,5s,6s的模拟器中进行测试
如果我从页面中删除行为,重建和部署,它将恢复工作 .
如果我运行聚合物棉绒,我会收到此警告
Behavior SomeBehavior not found when mixing properties into my-view2!
我做错了什么?
1 回答
根据Polymer Project Documentation,您需要在行为html文件中定义自己的命名空间,如下所示:
这会将MyBehaviors命名空间添加到全局窗口对象,因此可以从元素中将行为引用为“myBehaviors.SomeBehavior” .
我相信Polymer要求避免与当前和未来的聚合物行为发生碰撞 .
另见Rob Dodson's video on Behaviors .