当前位置: 首页 > 面试题库 >

在angularjs中路由多个控制器?

袁英豪
2023-03-14
问题内容

我正在尝试建立一个视图-我设置了两个控制器进行练习,一个是HeaderCtrl,其中包含一些数据(网站标题,标题背景等),另一个应该具有页面的主要内容-
MainCtrl。

在定义路线时,我这样做是:

mainApp.config(function ($routeProvider) {
$routeProvider
   .when('/',
   {
       controller: 'MainCtrl',
       templateUrl: 'modules/dashboard.html'
   })
})

这工作得很好,但是我想要为此指定多个参数,如下所示:

mainApp.config(function ($routeProvider) {
$routeProvider
   .when('/',
   {
       controller: 'HeaderCtrl',
       templateUrl: 'modules/header.html'
   },
   {
       controller: 'MainCtrl',
       templateUrl: 'modules/dashboard.html'
   })
})

这行不通,所以我猜这不是做到这一点的方法。我实际上要问的是-您可以在$ routeProvider中指定多个控制器吗?还是构建此视图的正确方法是什么?


问题答案:

我对这个问题的解决方法是有两个指令-header和main,它们引用相应的模板。

例如:

app.directive('header', function () {
  return {
    restrict: 'A',
    replace: true,
    templateUrl:'templates/header.html'
  }
})

然后,您可以创建一个包含指令 -index.html 的页面。

<div header></div>
<div main></div>

然后有 一个 控制器路由到您的index.html

如果要分别处理标头和主控制器,也可以将它们封装在单独的标头和主控制器中。

例如

<div ng-controller="HeaderCtrl">
    <div header></div>
</div>
<div ng-controller="MainCtrl">
    <div main></div>
</div>

或模板本身



 类似资料:
  • 问题内容: 一个单例控制器是否可能具有多个视图 [https://github.com/angular-ui/ui- router/issues/494] ? 用例:我有一个ui-view = header和ui-view = content。我根据当前状态更改标题以显示上下文相关的按钮(即返回,保存,过滤等)。我希望这些按钮在内容控制器中调用一个函数,但是如果执行以下操作,它将创建两个MyCon

  • 问题内容: 我有一个配置功能: InnerView位于mainView内部。当我获得url like时,函数按预期工作。但是,当我获得带有id的url时,即,我看不到任何输出,但是我希望输出,这就是我遇到的问题。我认为绝对/相对视图存在问题,但是我已经尝试了所有组合,但仍然无法正常工作。 更新: 所以现在我有以下状态: 正如RadimKöhler所说。输出,但是从现在开始我该如何到达? 问题答案:

  • 问题内容: 我有一个使用yeoman,grunt和bower创建的AngularJS应用程序。 我有一个登录页面,该页面具有用于检查身份验证的控制器。如果凭据正确,我将重新路由到主页。 app.js LoginControler.js 在主页上,我有 在中,检查登录信息,如果登录成功,则在服务工厂中设置用户对象。我不知道这是否正确。 我需要的是,当用户登录时,它会在用户对象中设置一些值,以便所有其

  • 我有一个使用yeoman、grunt和bower创建的AngularJS应用程序。 我有一个登录页面,它有一个检查身份验证的控制器。如果凭据是正确的,我重新路由到主页。 应用程序。js 登录ontroler.js 在我的主页上 在loginController中,我检查登录信息,如果成功,我在服务工厂中设置用户对象。我不知道这是否正确。 我需要的是,当用户登录时,它在user对象中设置一些值,以便

  • 我在web.php添加了以下路线,但它不起作用。 我的控制器如下所示,我正在使用Ajax发送数据,但收到的错误是Method not allowed exception。 Ajax代码----------------

  • 问题内容: 我正在尝试将控制器拆分为多个文件,但是当我尝试在模块中注册它们时出现错误: 组控制器咖啡 usercontroller.coffee 错误 错误:参数’GroupController’不是函数,未定义 从文档中,我并没有真正获得模块方法的功能。它是否用密钥“ Webchat”存储我的控制器? 编辑: 似乎[]传递也会创建一个新模块并覆盖前一个模块 为避免这种情况,您必须忽略[] 问题答