2013-12-17 1 views
1

Я хотел бы использовать const в классе Dart и указать его значение в моем HTML. Например:Ссылка static consts из HTML

Dart класс:

Class MyClass 
{ 
     static const String MY_VALUE = "foo"; 
} 

HTML:

<input value="{{MyClass.MY_VALUE}}"> 

Можем ли мы сделать это?

ответ

3

Нет, насколько я знаю, вы не можете использовать статический const в своем шаблоне. Шаблон ожидает методы экземпляра и getters. Однако есть простой способ: определить getter, который возвращает значение const, а затем использовать этот getter в вашем HTML.

Вот код для геттера:

String get myValue => MY_VALUE; 

А вот использование геттера в HTML:

<input value="{{myValue}}"> 
0

Я попробовал это, потому что я новичок в полимер , и я не думаю, что у вас могут быть статические конечные переменные класса, опубликованные/наблюдаемые, но вы можете иметь конечные переменные экземпляра. опубликованный/наблюдаемый.

// my.dart 
class MyClass 
{ 
    @observable static final String MY_VALUE="foo"; 
} 

Не работает, но это так.

// my.dart 
class MyClass 
{ 
    @observable final String MY_VALUE="foo"; 
} 

... остальная часть моего бессвязного ответа.

затем

<!-- mytemplate.html --> 

<polymer-element name="my-tag" > 
    <!-- lowercase and minus convention for html tag names --> 
    <template> 
    <input value={{MY_VALUE}}/> 
    </template> 
    <script type="application/dart" src="my.dart"/> 
</polymer-element> 

затем вернуться к my.dart, добавить

import 'package:polymer/polymer.dart'; 
import 'dart:html'; // what for ? why is there single quotes ? 

@CustomTag('my-tag') 
// camel case , brackets, single quotes, 
class MyClass { 

@observable static final int MY_VALUE="foo"; 
// lowercase after @, no brackets, no single quotes 
} 

от моего чтения custom polymer elements

И, наконец

<!-- index.html --> 

<html> 
    <head> 
    <link rel="import" href="mytemplate.html"/> 
    <script type="application/dart"> 
     export 'package:polymer/init.dart'; 
    </script>  
    <script src="packages/browser/dart.js" /> 
    </head> 
    <body> 
    <my-tag></my-tag> 
    </body> 
</html> 

Глядя назад, есть много ссылок. Обычай HTML полимерный элемент должен связать с дротиком кодом, так внутри тегами

<polymer-element></polymer-element> 

есть

<script type="application/dart" src="my.dart"/> 

Код дротик имеет ссылки на пользовательский HTML элемента, так что есть a

@CustomTag('my-tag') 

перед декларацией класса. Необходимо также импортировать библиотеку полимеров и библиотеку html, и необходимость обеспечения постоянной статичности класса. Возможно, тэг @observable работает только с объектами.

Я пробовал, и он работал только на объектах, и она не компилируется, когда я использовал аббревиатуру тег сценария внутри my.html, , так что я должен был сделать

<script type="application/dart" src="my.dart"> 
</script>