2013-12-17 91 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>