我想在Dart类中使用const并在我的HTML中引用它的值。例如:来自HTML的引用静态常量
飞镖类:
Class MyClass
{
static const String MY_VALUE = "foo";
}
HTML:
<input value="{{MyClass.MY_VALUE}}">
我们能做到这一点?
我想在Dart类中使用const并在我的HTML中引用它的值。例如:来自HTML的引用静态常量
飞镖类:
Class MyClass
{
static const String MY_VALUE = "foo";
}
HTML:
<input value="{{MyClass.MY_VALUE}}">
我们能做到这一点?
不,据我所知,你不能在你的模板中使用静态常量。该模板需要实例方法和getter。然而,有一个简单的解决方法:定义一个返回const值的getter,然后在你的HTML中使用该getter。
下面是吸气代码:
String get myValue => MY_VALUE;
这里是在HTML中使用的吸气剂:
<input value="{{myValue}}">
我试了一下,因为我是新来的聚合物,我不认为你可以有静态最终类变量发布/可观察,但你可以有最终的实例变量。发布/观测。
// 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,从我的custom polymer elements
阅读添加
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
}
然后终于
<!-- 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标签并没有编译, 所以我不得不这样做
<script type="application/dart" src="my.dart">
</script>