2015-08-28 65 views
1

成功設置0.17-dev-interop-reverse Polymer-Dart庫後,我終於可以在Dart中編寫Polymer 1.0應用程序。 Yeyyyyyyy !! 11 感謝您的幫助!Polymer-Dart 1.0自定義元素的繼承

但是,還有另一個問題出現了。如何從一個自定義元素繼承。例如。我想要一個所有實際元素都從中繼承的BasePage元素。

你的某些代碼:

base_page.html

<dom-module id="base-page"> 
    <template> 
     Yep, thats some content. 
    </template> 
</dom-module> 

base_page.dart

@HtmlImport('base_page.html') 
library test.page; 

import 'dart:html'; 
import 'dart:js'; 
import 'package:polymer/polymer.dart'; 
import 'package:web_components/web_components.dart' show HtmlImport; 

//@jsProxyReflectable 
@PolymerRegister('base-page') 
class BasePage extends PolymerElement { 

    factory BasePage() => new Element.tag('base-page'); 

    BasePage.created() : super.created(); 

} 

test_page.html

<dom-module id="test-page"> 
    <template> 
     <shadow></shadow> 
     Content of an actual page. 
    </template> 
</dom-module> 

test_page.dart

@HtmlImport('test_page.html') 
library test.app; 

import 'dart:html'; 
import 'dart:js'; 
import 'package:polymer/polymer.dart'; 
import 'package:web_components/web_components.dart' show HtmlImport; 
import 'package:test/base_page.dart'; 

//@jsProxyReflectable 
@PolymerRegister('test-page') 
class TestPage extends BasePage { 

    factory TestPage() => new Element.tag('test-page'); 

    TestPage.created() : super.created(); 

} 

我已經做了很多與聚合物0.5之前和繼承從來不是一個問題,但由於某些原因,我沒有得到<base-page>內容顯示(Yep, thats some content.缺失)。

我試圖移動<template>之外的<shadow>,但它不起作用。我還嘗試將extends='base-page'以及extendsTag: 'base-page'添加到<test-page>,但似乎沒有任何效果。

想法?

回答

1

在Polymer.js 1.0中只支持本地元素的擴展,我很肯定Polymer.dart 0.17不支持這個,如果它不支持在Polymer.js 1.0中。

雖然此功能似乎計劃稍後Polymer.js版本。 目前最接近的是嵌入而不是擴展。