Как переопределить функцию компонента в Polymer 2?

1

Я использую app-localstorage-document для хранения данных в браузере. В документации говорится о переопределении метода zeroValue для определения значения по умолчанию для использования, когда нет данных. Но я не знаю, как переопределить компонентный метод в Polymer. Здесь я попытался, но я не думаю, что это правильно, потому что функция не вызывается.

<app-localstorage-document key="CatValue" data="{{cat}}"></app-localstorage-document>

class MyApp extends Polymer.Element{
   static get is(){return 'my-app';}
   static get properties(){
     return{
       cat:{
         type: String,
         value: ""
       }
     };
   }

   zeroValue(){
     this.set('cat',"a cat");
   }
}
Теги:
web-component
polymer
polymer-2.x

1 ответ

1
Лучший ответ

Это может помочь вам:

<app-localstorage-document key="CatValue" data="{{cat}}"></app-localstorage-document>

class MyApp extends Polymer.Element{
   static get is(){return 'my-app';}
   static get properties(){
     return{
       cat:{
         type: String,
         value: function() {
              return this.zeroValue;
         }
       }
     };
   }

   //Override the default method
   get zeroValue(){
     return 'a cat';
   }
}

Если вы не хотите переопределять zeroValue(), он сохранит значение ключа CatValue как неопределенное.

  • 1
    Это работает, но в отличие от iron-localstorage-load-empty , zeroValue() вызывается каждый раз. Я знаю, что это потому, что мы пытаемся получить значение от метода. Но можем ли мы сделать это как iron-localstorage-load-empty то вроде iron-localstorage-load-empty чтобы метод не вызывался каждый раз?
  • 0
    Также this.set('key',"some value"); не обновляет значение в локальном хранилище. Есть идеи, почему это не так?
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню