Я попробовал это, потому что я новичок в полимер , и я не думаю, что у вас могут быть статические конечные переменные класса, опубликованные/наблюдаемые, но вы можете иметь конечные переменные экземпляра. опубликованный/наблюдаемый.
// 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>