我想在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>