2015-02-06 50 views
1

我試圖運行自動綁定鏢auto binding dart source這個基本的例子。但它失敗自動綁定鏢不工作,失敗狀態錯誤

打破例外:狀態不好:一個 新bindingDelegate可分配

之前,我這樣做背後出力使用模板polymerapp模板必須被清除。 的index.html

<html> 
<head> 
    <link rel="import" href="../lib/main_app.html"> 
    <link rel="stylesheet" href="styles.css"> 
    <script type="application/dart">export 'package:polymer/init.dart';</script> 
</head> 

<body unresolved> 
    <main-app></main-app> 
</body> 
</html> 

main_app.html

<link rel="import" href="../../packages/polymer/polymer.html"> 
<polymer-element name="main-app"> 
    <template id="my-template" is="auto-binding-dart"> 
    <style> 
     :host { 
     display: block; 
     } 
    </style> 
     <div>Say something: <input value="{{value}}"></div> 
     <div>You said: {{value}}</div> 
     <button on-tap="{{buttonTap}}">Tap me!</button> 
    </template> 
    <script type="application/dart" src="main_app.dart"></script> 
</polymer-element> 

main_app.dart

import 'dart:html'; 
import 'package:polymer/polymer.dart'; 
@CustomTag('main-app') 
class MainApp extends PolymerElement { 
    /// Constructor used to create instance of MainApp. 
    MainApp.created() : super.created(); 
    ready(){ 
    super.ready(); 
    var template = document.querySelector('#my-template'); 
    template.model = new MyModel(); 
    } 
} 
class MyModel { 
    String value = 'something'; 
    buttonTap() => window.console.info('tap!'); 
} 

回答

1

你並不需要使用<template is="auto-binding-dart">另一個模板中。

自動綁定dart的要點是爲聚合物元素外部的鬍鬚綁定創建上下文。您可以使用自動綁定鏢而不是您的主應用程序不在內。

我更喜歡應用程序元素(或稱爲主應用程序),因爲您不需要這種方法的主要方法。

<polymer-element ...>中最外面的<template>標籤自動使用元素類作爲模型(綁定上下文)。

+0

非常感謝你澄清這一點。 – maxpaul 2015-02-07 03:55:12

相關問題