2014-01-22 54 views
3

我使用polymer.dart在飛鏢中構建一個應用程序,並且即時通訊實現了我需要某種方式在我的聚合物元素之間進行通信。我已經把目光投向了event_bus,我正在努力使它與聚合物一起工作。Dart PolymerElement事件總線

但是看來,當我試圖把我的PolymerElement全班分成my_lib我收到以下錯誤:

line 1 pos 6: url expected 
part of my_lib; 
    ^

我得到它好像每次PolymerElement應該是自包含的,但有一個困難時期IM弄清楚我將如何處理從一個PolymerElement到另一個的通信。

簡而言之,我想知道的是,如何將我的元素放在同一個庫中,以便他們可以共享事件總線或處理聚合物元素之間通信的首選方式是什麼?

我似乎無法找到PolymerElements之間的任何通信的例子,所以指向文檔或示例的指針將不勝感激。

回答

3

你是對的,最好在一個庫中只有一個聚合物元素,沒有別的。

我使用PolymerElements和EventBus。
這是沒有問題的。您不必將所有類放入同一個庫中即可使用它們。 只需輸入你需要的東西。

如果你有你想要在你的包中導入的文件lib目錄導入他們就像他們在一些相關的包。

import 'package:yourpackagename/file_to_import.dart'; 
import 'package:yourpackagename/src/file_to_import.dart'; // just to show that other paths work too 
import 'package:yourpackagename/src/someotherdir/file_to_import.dart'; // - " - 
import 'package:yourpackagename/anotherdir/someotherdir/file_to_import.dart'; // - " - 

如果要導入的文件是在web目錄中的應用程序包的或類似

import 'file_to_import.dart' 
import 'src/file_to_import.dart'; // just to show that other paths work too 
import 'someotherdir/file_to_import.dart'; // - " - 
import 'anotherdir/someotherdir/file_to_import.dart'; // - " - 

web使用相對路徑的任何子目錄導入庫後,您可以訪問所有非 - 私人類/函數/變量,就像它們在同一個庫中一樣。

+1

我很驚訝,我沒有想到這一點。這是一個簡單的解決方案! :)很好的回答! – CoolMcGrrr

+0

@GünterZöchbauer您使用哪種EventBus? – Fedy2

+0

我從https://pub.dartlang.org/packages/event_bus開始。我經常爲我自己的需要定製它。 https://github.com/bwu-dart/bwu_datagrid/blob/master/lib/core/event_bus.dart –