Dart скомпилирован в JS, но запись объектов не работает

Я создал приложение Dart и собираю информацию о погоде из некоторого источника API погоды.

Просто из любопытства я хочу проверить, могу ли я инкапсулировать информацию о погоде в объект, а затем отобразить свойства объекта в шаблоне Polymer.

Фрагмент примерно такой:

HTML-файл:

<polymer-element ...>
  <template>
    Today in {{weather.city}}, the temperature is {{weather.temp}}. 
  </template>
</polymer-element>

и файл Dart:

@published Weather weather;
...
weather=new Weather.created(a_json_string);

class Weather
{
   String city;
   num temp;

   // The constructor just creates an instance by extracting the city, temp info fromthe JSON string
}

В Дартиуме работает отлично.

Однако, если я опубликую это приложение и попытаюсь запустить этот выходной HTML-файл, это отстой: никакого отображения.


person TaylorR    schedule 22.12.2013    source источник


Ответы (1)


Вероятно, древотрясение сбрасывает ваши поля. Когда на поля ссылаются только полимерные выражения в вашей разметке, tree-shaking не распознает, что поля необходимы, поэтому отбрасывает их.

Я думаю, вы все равно хотите использовать @observable, потому что в противном случае изменения значения не отражаются в вашем представлении.

class Weather
{
   @observable String city; // or @reflectable String city;
   @observable num temp; // or @reflectable num temp;

   // The constructor just creates an instance by extracting the city, temp info fromthe JSON string
}
person Günter Zöchbauer    schedule 22.12.2013