Создание экземпляра шаблона Dart с веб-интерфейса на Polymer

Рабочий старый код веб-интерфейса:

<template instantiate="if view == 'dashboard'">

Не работает код полимера:

<p>{{view}}</p> <-- this is ok, prints: dashboard 
<template if="{{view == 'dashboard'}}"> <-- not work, if I change code to use bool property something like {{showDashboard}} then works ok.

Каков правильный синтаксис? Я не могу найти ни одного примера создания экземпляра со сравнением строк.

**Изменить. Подробнее: Dart SDK версии 0.7.3.1_r27487

HTML:

  <p>int: {{score}}</p>
  <template bind if="{{score == 4}}">
    <p>ins int: {{score}}</p>
  </template>
  <p>String: {{view}}</p>
  <template bind if="{{view == 'dashboard'}}">
     <p>ins String: {{view}}</p>
   </template>  
   <p>bool: {{showp}}</p>  
   <template bind if="{{showp}}">
     <p>ins bool: {{showp}}</p>
   </template>

дротик:

class AppModel extends Object with ObservableMixin {
   @observable String view = "dashboard";
   @observable int score = 4;
   @observable bool showp = true;
}

void main() {
 query("#templ").model = new AppModel();
}

И вывод:

int: 4
String: dashboard
bool: true
ins bool: true

person Jacek    schedule 18.09.2013    source источник


Ответы (1)


Яцек, это работает для меня. В одном из моих приложений у меня есть следующее использование условного рендеринга (имена переменных изменены в соответствии с вашим примером):

 <template bind if="{{view == 'dashboard'}}">
   <p>{{view}}</p>
 </template>

В этом фрагменте {{view}} отображается, только когда счет равен 4:

<template bind if="{{score == 4}}">
  <h2>Score: {{score}}</h2>
</template>

И условные операторы работают, даже если вы измените bind if только на if.

Можете ли вы опубликовать больше кода? Возможно проблема кроется в другом.

person Shailen Tuli    schedule 18.09.2013