如何在angularjs中加载不同的布局

How to load a different layout in angularjs

本文关键字:布局 加载 angularjs      更新时间:2023-09-26

我有两个布局文件。布局1布局2

路由/one是加载Layout-1的起点,但现在如果我单击链接/two,它会为我获取文件,但对于Layout-1,我希望,如果我命中/two,则应该加载Layout-2

如果我刷新页面,我会得到正确的东西,因为那一次我直接访问了服务器。因此,有没有任何方法可以从angular指定从服务器加载哪个布局文件。

谢谢。

加载新布局模板意味着加载嵌入了新javascript和css文件的新html。这相当于将页面重定向到新位置。您可以使用$window.location.href="new/layout/template"。阅读angularjs开发者指南了解更多信息。

如果它代表客户端路由,那么您应该使用$routeProvider为这个编写一个路由

var app = angular.module('app', []);
app.config(function($routeProvider){
  $routeProvider
    .when('/one', {templateUrl: 'tmpl1.html'})
    .when('/two', {templateUrl: 'tmpl2.html'})
    .otherwise({redirectTo: '/one'});
});

它将允许您为另一个url/action 定义单独的模板和控制器

在这里,我做了一个工作的例子,说明它是如何工作的。

如果它是关于服务器端路由的,那么阅读手册并像这样使用:

match 'two' => 'controller#action'

最后,我使用UI路由器解决了这个问题

感谢您的帮助:)