2013-12-17 64 views
1

我想在Dart类中使用const并在我的HTML中引用它的值。例如:来自HTML的引用静态常量

飞镖类:

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

HTML:

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

我们能做到这一点?

回答

3

不,据我所知,你不能在你的模板中使用静态常量。该模板需要实例方法和getter。然而,有一个简单的解决方法:定义一个返回const值的getter,然后在你的HTML中使用该getter。

下面是吸气代码:

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,从我的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>