首页 文章

Polymer向元素添加行为

提问于
浏览
0

我创建了一个新的聚合物项目 .

通过终端 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 回答

  • 0

    根据Polymer Project Documentation,您需要在行为html文件中定义自己的命名空间,如下所示:

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

    这会将MyBehaviors命名空间添加到全局窗口对象,因此可以从元素中将行为引用为“myBehaviors.SomeBehavior” .

    我相信Polymer要求避免与当前和未来的聚合物行为发生碰撞 .

    另见Rob Dodson's video on Behaviors .

相关问题