我可以把一个参数从控制器传递到app.js吗

Can i pass a parameter from controller to app.js?

本文关键字:控制器 app js 参数 一个 我可以      更新时间:2023-09-26

如果变量为true,我需要显示我的ionic应用程序的启动视图,如果变量为false,则需要显示另一个视图,所以我需要知道是否可以从控制器获取参数并在app.js:中使用它

if (parameter===true)
  {
    $urlRouterProvider.otherwise('/app/inicio');
  
  }else {
    $urlRouterProvider.otherwise('/app/inicio2');  
  }

有什么建议吗?

这个答案可能不是提供商的最佳用途,但它会满足您的需求。

Ionic应用程序状态在模块配置块中定义,在配置块中没有控制器,没有服务,没有工厂,这些都还没有实例化。配置块中实例化的唯一角度对象(除了常量)是提供程序。因此,你可以创建一个自定义提供程序,它可以为你提供参数,告诉你在应用程序启动时向用户显示哪个视图。以下是如何创建提供者:

app.provider('mainView', function MainViewProvider() {
  var someCondition = false;
  this.getCurrentMainView = function() {
    if(someCondition)
      return "/app/inicio";
    else {
      return "/app/inicio2";
    }
  };
  //return a dummy factory that will never be used or injected
  this.$get = ["nullService", function(){return null;}];
});

然后在您的配置块中,注入提供者并使用getCurrentView函数获取导航到的URL

app.config(function($stateProvider, $urlRouterProvider, mainViewProvider) {
  $urlRouterProvider.otherwise(mainViewProvider.getCurrentMainView());
});