2014-01-22 5 views
3

Im создание приложения в дротике с использованием polymer.dart, и я понимаю, что мне нужен способ связи между моими полимерными элементами. Я посмотрел на event_bus, и я пытаюсь заставить его работать с полимером.Dart PolymerElement eventbus

Представляется, однако, что, когда я пытаюсь поставить мой класс PolymerElement в my_lib я получаю следующее сообщение об ошибке:

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

Я понимаю, что это, кажется, как каждый PolymerElement должны быть самодостаточными, но им с трудом выясняя, как я буду обращаться с коммуникацией от одного PolymerElement к другому.

Итак, я хотел бы знать, как я могу поместить свои элементы в одну библиотеку, чтобы они могли совместно использовать eventbus или какой предпочтительный способ обработки связи между элементами полимера?

Я не могу найти каких-либо примеров связи между 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 директории вашего пакета приложения или любой подкаталог 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'; // - " - 

После импорта библиотеки вы можете получить доступ ко всем без - частные классы/функции/переменные, подобные тем, которые были в одной и той же библиотеке.

+1

Я удивлен, что не думал об этом. Это простое решение! :) Отличный ответ! – CoolMcGrrr

+0

@ Günter Zö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 –