jsパッケージを介して任意のJavascriptライブラリを使用できます。
Firebaseの場合、次のことを行う必要があります。
dependencies:
js: any
- 以下
<script>
をHTMLページに追加します。
<script src='https://cdn.firebase.com/v0/firebase.js'></script>
<script type="application/dart" src="youDartCode.dart"></script>
<script src="packages/browser/dart.js"></script>
<script src="packages/browser/interop.js"></script>
import 'package:js/js.dart' as js;
void main() {
final myDataRef = new js.Proxy(js.context.Firebase,
'https://xxx.firebaseio-demo.com/');
myDataRef.on('child_added', (snapshot, String previousChildName) {
final message = snapshot.val();
print("${message.name} : ${message.text}");
});
myDataRef.push(js.map({"name": 'myName', "text": 'js interop rocks'}));
}
上記のDartコードは、次のJavaScriptコードと同等です。
var myDataRef = new Firebase('https://xxx.firebaseio-demo.com/');
myDataRef.on('child_added', function(snapshot, previousChildName) {
var message = snapshot.val();
console.log(message.name + " : " + message.text);
}));
myDataRef.push({name: 'myName', text: 'js interop rocks'});
基本的に :
Javascriptオブジェクトをインスタンス化する必要がある場合は、を使用しますnew js.Proxy(js.context.MyJavascriptObjectName, arg1, arg2, arg3))
。
Javascript匿名オブジェクトを提供する必要がある場合は、を使用しますjs.map({'attr1', value1}, {'attr2', value2})
。