Showing
7 changed files
with
30 additions
and
3 deletions
| 1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
| 2 | import 'package:get/get.dart'; | 2 | import 'package:get/get.dart'; |
| 3 | 3 | ||
| 4 | +import '../../../../main.dart'; | ||
| 4 | import '../../../routes/app_pages.dart'; | 5 | import '../../../routes/app_pages.dart'; |
| 5 | import '../controllers/home_controller.dart'; | 6 | import '../controllers/home_controller.dart'; |
| 6 | 7 | ||
| @@ -8,6 +9,8 @@ class HomeView extends GetView<HomeController> { | @@ -8,6 +9,8 @@ class HomeView extends GetView<HomeController> { | ||
| 8 | const HomeView({Key? key}) : super(key: key); | 9 | const HomeView({Key? key}) : super(key: key); |
| 9 | @override | 10 | @override |
| 10 | Widget build(BuildContext context) { | 11 | Widget build(BuildContext context) { |
| 12 | + final value = Get.find<Controller>(); | ||
| 13 | + print(value); | ||
| 11 | return GetRouterOutlet.builder( | 14 | return GetRouterOutlet.builder( |
| 12 | routerDelegate: Get.nestedKey(Routes.home), | 15 | routerDelegate: Get.nestedKey(Routes.home), |
| 13 | builder: (context) { | 16 | builder: (context) { |
| @@ -5,6 +5,7 @@ import '../controllers/product_details_controller.dart'; | @@ -5,6 +5,7 @@ import '../controllers/product_details_controller.dart'; | ||
| 5 | class ProductDetailsBinding extends Binding { | 5 | class ProductDetailsBinding extends Binding { |
| 6 | @override | 6 | @override |
| 7 | List<Bind> dependencies() { | 7 | List<Bind> dependencies() { |
| 8 | + print('JDISOJDOSIJOI'); | ||
| 8 | return [ | 9 | return [ |
| 9 | Bind.create<ProductDetailsController>( | 10 | Bind.create<ProductDetailsController>( |
| 10 | (_) => ProductDetailsController( | 11 | (_) => ProductDetailsController( |
| @@ -76,14 +76,14 @@ class AppPages { | @@ -76,14 +76,14 @@ class AppPages { | ||
| 76 | transition: Transition.cupertino, | 76 | transition: Transition.cupertino, |
| 77 | showCupertinoParallax: true, | 77 | showCupertinoParallax: true, |
| 78 | participatesInRootNavigator: false, | 78 | participatesInRootNavigator: false, |
| 79 | - bindings: [ProductsBinding()], | 79 | + bindings: [ProductsBinding(), ProductDetailsBinding()], |
| 80 | children: [ | 80 | children: [ |
| 81 | GetPage( | 81 | GetPage( |
| 82 | name: _Paths.productDetails, | 82 | name: _Paths.productDetails, |
| 83 | transition: Transition.cupertino, | 83 | transition: Transition.cupertino, |
| 84 | showCupertinoParallax: true, | 84 | showCupertinoParallax: true, |
| 85 | page: () => ProductDetailsView(), | 85 | page: () => ProductDetailsView(), |
| 86 | - bindings: [ProductDetailsBinding()], | 86 | + bindings: [], |
| 87 | middlewares: [ | 87 | middlewares: [ |
| 88 | //only enter this route when authed | 88 | //only enter this route when authed |
| 89 | EnsureAuthMiddleware(), | 89 | EnsureAuthMiddleware(), |
| 1 | +import 'package:example_nav2/services/auth_service.dart'; | ||
| 1 | import 'package:flutter/material.dart'; | 2 | import 'package:flutter/material.dart'; |
| 2 | import 'package:get/get.dart'; | 3 | import 'package:get/get.dart'; |
| 3 | 4 | ||
| 4 | import 'app/modules/splash/controllers/splash_service.dart'; | 5 | import 'app/modules/splash/controllers/splash_service.dart'; |
| 5 | import 'app/routes/app_pages.dart'; | 6 | import 'app/routes/app_pages.dart'; |
| 6 | -import 'services/auth_service.dart'; | 7 | + |
| 8 | +class Controller {} | ||
| 7 | 9 | ||
| 8 | void main() { | 10 | void main() { |
| 9 | runApp( | 11 | runApp( |
| 10 | GetMaterialApp( | 12 | GetMaterialApp( |
| 11 | title: "Application", | 13 | title: "Application", |
| 12 | binds: [ | 14 | binds: [ |
| 15 | + Bind.create<Controller>( | ||
| 16 | + (_) => Controller(), | ||
| 17 | + ), | ||
| 13 | Bind.put(SplashService()), | 18 | Bind.put(SplashService()), |
| 14 | Bind.put(AuthService()), | 19 | Bind.put(AuthService()), |
| 15 | ], | 20 | ], |
| @@ -20,6 +20,11 @@ class InstanceInfo { | @@ -20,6 +20,11 @@ class InstanceInfo { | ||
| 20 | required this.isPrepared, | 20 | required this.isPrepared, |
| 21 | required this.isInit, | 21 | required this.isInit, |
| 22 | }); | 22 | }); |
| 23 | + | ||
| 24 | + @override | ||
| 25 | + String toString() { | ||
| 26 | + return 'InstanceInfo(isPermanent: $isPermanent, isSingleton: $isSingleton, isRegistered: $isRegistered, isPrepared: $isPrepared, isInit: $isInit)'; | ||
| 27 | + } | ||
| 23 | } | 28 | } |
| 24 | 29 | ||
| 25 | extension Inst on GetInterface { | 30 | extension Inst on GetInterface { |
| @@ -463,6 +463,12 @@ class BindElement<T> extends InheritedElement { | @@ -463,6 +463,12 @@ class BindElement<T> extends InheritedElement { | ||
| 463 | } | 463 | } |
| 464 | } | 464 | } |
| 465 | } else { | 465 | } else { |
| 466 | + if (widget.create != null) { | ||
| 467 | + _controllerBuilder = () => widget.create!.call(this); | ||
| 468 | + Get.create<T>(_controllerBuilder!, tag: widget.tag, permanent: false); | ||
| 469 | + } else { | ||
| 470 | + _controllerBuilder = widget.init; | ||
| 471 | + } | ||
| 466 | _controllerBuilder = | 472 | _controllerBuilder = |
| 467 | (widget.create != null ? () => widget.create!.call(this) : null) ?? | 473 | (widget.create != null ? () => widget.create!.call(this) : null) ?? |
| 468 | widget.init; | 474 | widget.init; |
| @@ -74,13 +74,20 @@ class _GetCache<S extends GetLifeCycleMixin> extends WidgetCache<GetWidget<S>> { | @@ -74,13 +74,20 @@ class _GetCache<S extends GetLifeCycleMixin> extends WidgetCache<GetWidget<S>> { | ||
| 74 | void onInit() { | 74 | void onInit() { |
| 75 | info = Get.getInstanceInfo<S>(tag: widget!.tag); | 75 | info = Get.getInstanceInfo<S>(tag: widget!.tag); |
| 76 | 76 | ||
| 77 | + print('info: $info'); | ||
| 78 | + | ||
| 77 | _isCreator = info!.isPrepared && info!.isCreate; | 79 | _isCreator = info!.isPrepared && info!.isCreate; |
| 78 | 80 | ||
| 79 | if (info!.isRegistered) { | 81 | if (info!.isRegistered) { |
| 80 | _controller = Get.find<S>(tag: widget!.tag); | 82 | _controller = Get.find<S>(tag: widget!.tag); |
| 81 | } | 83 | } |
| 82 | 84 | ||
| 85 | + print('controller: $_controller'); | ||
| 86 | + print('widget: $widget'); | ||
| 87 | + | ||
| 83 | GetWidget._cache[widget!] = _controller; | 88 | GetWidget._cache[widget!] = _controller; |
| 89 | + print('cache: ${GetWidget._cache}'); | ||
| 90 | + | ||
| 84 | super.onInit(); | 91 | super.onInit(); |
| 85 | } | 92 | } |
| 86 | 93 |
-
Please register or login to post a comment