2016-07-24 90 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