2016-07-24 93 views
0

我已经创建了一个新的聚合物项目。聚合物添加行为到元素

通过终端mkdir project; cd project; polymer init;然后创建一个应用程序抽屉模板。

什么是将行为添加到my-view2元素中的正确方法 src/my-view2.html

如果我创建在src/some-behavior.html

<script> 
SomeBehavior = { 
    testing: function() 
    { alert('hello'); } 
} 
</script> 

然后,行为视图2

<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目录与

sudo firebase deploy # same dodgy permission problem

这对火力点在桌面上会工作: 我检查d与Chrome,火狐和Safari都是最新的版本。

但在iOS上,我遇到了view2页面无法加载的问题。我已经在iPhone OSX 9.3(我认为,最新的最新版本)上测试,然后在iPhone 4s,5s,6s的模拟器上测试。如果我从页面中删除行为,重建和部署,它将返回工作状态。

如果我跑的聚合物皮棉我得到这样的警告

Behavior SomeBehavior not found when mixing properties into my-view2!

我我做错了什么?

回答

0

按照Polymer Project Documentation,你需要定义自己的命名空间,你的行为的HTML文件,如下所示:

window.MyBehaviors = window.MyBehaviors || {}; 
MyBehaviors.SomeBehavior = { ... } 

这增加了MyBehaviors命名空间的全局窗口对象,这样的行为可以被引用从你的元素作为“myBehaviors.SomeBehavior”。

我相信聚合物需要这样做才能避免与当前和未来聚合物行为发生碰撞。请参阅Rob Dodson's video on Behaviors