Polymer 如何在聚合物中正确加载js

Polymer 如何在聚合物中正确加载js,polymer,polymer-2.x,Polymer,Polymer 2.x,我在移动设备上的应用程序有问题。当我在浏览器上刷新页面时,js第一次不工作,但在我平移和缩小后,脚本将工作 以下是html文件: <div class="userLogged" on-click="userMenu"> <iron-icon icon="vaadin:user"></iron-icon> </div> 我的页面的完整代码 一个简短的旁注:类的名称应该是PageControl,如class PageControl.El

我在移动设备上的应用程序有问题。当我在浏览器上刷新页面时,js第一次不工作,但在我平移和缩小后,脚本将工作

以下是html文件:

 <div class="userLogged" on-click="userMenu">
    <iron-icon icon="vaadin:user"></iron-icon>
 </div>
我的页面的完整代码


一个简短的旁注:类的名称应该是
PageControl
,如
class PageControl.Element
——应该与dom模块的
id
匹配

我将创建一个属性
userMenuClass
,并按如下方式执行:

<template>
    ...
    <div class="userLogged" on-click="userMenu"> ... </div>
    ...
    <div class$="[[userMenuClass]]"></div>  <!-- Note the $ after class. You need this to get binding to work properly. -->
...
</template>
<script>
    ....
    static get properties() {
        return {
            'userMenuClass': {
                type: String,
                value: () => 'userMenu slideRight'
            }
        }
    }
    ...
    userMenu (e) {
        let menuClass = 'userMenu';
        if (this.userMenuClass.indexOf('slideRight') == -1)  {
            menuClass += ' slideRight';
        }
        this.set('userMenuClass', menuClass);
    }
</script>

...
... 
...
...
....
静态获取属性(){
返回{
“userMenuClass”:{
类型:字符串,
值:()=>'userMenu slideRight'
}
}
}
...
用户菜单(e){
让menuClass='userMenu';
if(this.userMenuClass.indexOf('slideRight')=-1){
菜单类+='slideRight';
}
this.set('userMenuClass',menuClass);
}

当您的按钮在单击时没有响应时;你能看到图标吗?icon=“vaadin:user”yes我能看到我的按钮。将你的代码添加为代码而不是照片。为了能够进行测试,这非常有效。有可能得到多个值吗?我还没试过。您可以考虑将<代码> USEMENUCULAS<代码>转换成计算属性,然后在<代码>类型之后生成第二个属性:数组< /代码>,如<>代码> ARRAYOFFrase,并保持字符串值在其中;然后,您可以观察对该数组的更改,并且任何时候发生更改时,您都可以使用
返回arrayOfClasses.join(“”)
类型来更新
userMenuClass
<template>
    ...
    <div class="userLogged" on-click="userMenu"> ... </div>
    ...
    <div class$="[[userMenuClass]]"></div>  <!-- Note the $ after class. You need this to get binding to work properly. -->
...
</template>
<script>
    ....
    static get properties() {
        return {
            'userMenuClass': {
                type: String,
                value: () => 'userMenu slideRight'
            }
        }
    }
    ...
    userMenu (e) {
        let menuClass = 'userMenu';
        if (this.userMenuClass.indexOf('slideRight') == -1)  {
            menuClass += ' slideRight';
        }
        this.set('userMenuClass', menuClass);
    }
</script>