Pergunta

I have created a Dart app and grabs weather information from some weather API source.

Just out of my curiosity, I want to test if I can encapsulate the weather information in an object and then render the object's properties in the Polymer template.

The snippet is something like this:

HTML file:

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

and the Dart file:

@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
}

In Dartium, it works perfectly fine.

However, if I pub build that app and tried to run that output HTML file, it sucks: no display at all.

Foi útil?

Solução

Probably tree-shaking is dropping your fields. When fields are only referenced by polymer expressions in your markup tree-shaking doesn't recognize the fields are needed, so it drops them.

I think you want to use @observable anyway because otherwise value changes are not reflected in your view.

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
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top