Polymer 聚合物在元素间反映功能 我有一个跨元素共享的行为 在一个元素中,我有一个on change=“\u toggle”开关 在第二个元素中,我有与第一个元素相同的代码,没有开关按钮。当开关激活时,它会反射到包含开关的元件

Polymer 聚合物在元素间反映功能 我有一个跨元素共享的行为 在一个元素中,我有一个on change=“\u toggle”开关 在第二个元素中,我有与第一个元素相同的代码,没有开关按钮。当开关激活时,它会反射到包含开关的元件,polymer,Polymer,问:如何在所有元素中反映on change=“\u toggle”功能 我的代码: 一, 语言行为={ 行为:[ 聚合物的应用化行为 ], 特性:{ 语言:{ 值:“sl”, reflectToAttribute:真 }, }, 附:函数(){ this.loadResources(this.resolveUrl('/data/locales.json')); }, _切换:函数(){ this.language=this.$.switch.checked?'en':'sl'; //这个函数有

问:如何在所有元素中反映on change=“\u toggle”功能

我的代码:

一,


语言行为={
行为:[
聚合物的应用化行为
],
特性:{
语言:{
值:“sl”,
reflectToAttribute:真
},
},
附:函数(){
this.loadResources(this.resolveUrl('/data/locales.json'));
},
_切换:函数(){
this.language=this.$.switch.checked?'en':'sl';
//这个函数有问题吗?
}
};
二,


:主持人{
显示:块;
}
{{localize('menu_2')}}//这会随着开关的变化而变化

因为每个元素都有自己的行为副本,所以您的方法不起作用。现在我唯一能想到的选择是:

  • 将两个元素保留在一个公共元素中,并在其中更改属性
  • 如果您计划将所有元素放在一个html文件中,则可以在该html文件中更改此功能,并将属性绑定到所有元素

  • 在进一步的搜索中,我发现
    纸吐司
    不允许一次打开多个吐司。它在polymer函数之外声明了一个变量
    currentToast
    ,并且在toasts中保持不变。也许你可以看看它的代码,它可能会有所帮助。我有很多超过2个元素,我不能只用一个元素。我想翻译整个应用程序。。。顺便说一句,我使用的不是纸吐司,而是纸拨动按钮。我建议您查看一下它的代码,它可能会给您一些如何实现它的想法。无论如何,如果你想实现本地化,为什么不试试
    i18n msg
    。一个相同的链接。@a1626我想你可能还想看看polymer团队的@Alan是的,这也可以做到,但它仍然是测试版。
    <script>
      LanguageBehavior = {
    
        behaviors: [
          Polymer.AppLocalizeBehavior
        ],
    
        properties: {
          language: {
            value: 'sl',
            reflectToAttribute: true
          },
        },
    
        attached: function() {
          this.loadResources(this.resolveUrl('/data/locales.json'));
        },
    
        _toggle: function() {
          this.language = this.$.switch.checked ? 'en' : 'sl';
          // This function is the problem?
        }
    
      };
    </script>