Injeção de dependências - AlvaroVasconcelos/modular GitHub Wiki
Você pode injetar qualquer classe no seu módulo usando o getter 'binds', como por exemplo classes BLoC ou ChangeNotifier
class AppModule extends MainModule {
//aqui ficarão todas as classes que deseja Injetar no seu projeto (ex: bloc, dependency)
@override
List<Bind> get binds => [
Bind((i) => AppBloc()), //usando bloc
Bind((i) => Counter()), //usando ChangeNotifier
];
//aqui ficarão as rotas do seu módulo
@override
List<Router> get routers => [
Router("/", child: (_, args) => HomePage()),
Router("/login", child: (_, args) => LoginPage()),
];
//adicione seu widget principal aqui
@override
Widget get bootstrap => AppWidget();
}Vamos supor por exemplo que nós queremos recuperar o AppBloc dentro do HomePage.
//código do bloc
import 'package:flutter_modular/flutter_modular.dart' show Disposable;
//você pode herdar ou implementar a partir do Disposable para configurar um dispose para sua classe, se não não tiver um.
class AppBloc extends Disposable {
StreamController controller = StreamController();
@override
void dispose() {
controller.close();
}
}