用于创建母版页子页面效果的 Angular JS

Posted

技术标签:

【中文标题】用于创建母版页子页面效果的 Angular JS【英文标题】:Angular JS for creating a master page child page effect 【发布时间】:2016-06-26 21:13:23 【问题描述】:

我在使用 html 并使用 AngularJS 调用 Web API 的应用程序中需要此母版页和子页功能。

在这种情况下我遇到了路由问题。

Route.js 中用于路由的代码:

var MainApp = angular.module('MainApp', ['ngRoute']);
 MainApp.config(function ($routeProvider, $locationProvider) 
    $routeProvider
    .when('/', 
        templateUrl: '../partials/DashboardMenu.html',
        controller: 'DashboardMain'
    )
    .when('/Holidays', 
        templateUrl: '../partials/Holidays.html',
        controller: 'Holidays'
    )
    .when('/Projects', 
        templateUrl: '../partials/Projects.html',
        controller: 'Projects'
    )

    $locationProvider.html5Mode(true);
    $locationProvider.hashPrefix('!');
);

仪表板.html

<body ng-app="MainApp" ng-controller="DashboardMainController">
<div class="view-animate-container">
    <div ng-view class="view-animate"></div>
</div>

DashboardMenu.html

<div class="container-fluid btn-group">
<div class="row">
    <a href="../partials/MyProfile.html" class="thumbnail">
        <img src=""  />
    </a>

    <a href="../partials/Projects.html" class="thumbnail">
        <img src=""  />
    </a>

    <a href="../partials/Holidays.html" class="thumbnail">
        <img src=""  />
    </a>
</div>

以下是我的应用程序中的文件夹结构:

用户从登录页面登录后,应将用户重定向到 Dashboard.html,默认子视图为 DashboardMenu.html

在登录 Service.cs 中,当我对用户进行身份验证并尝试使用以下代码 sn-p 将他重定向到 Dashboard.html 时,它只是在 URL 中附加了 Dashboard.html。

$location.path('DashboardMenu.html')

为此,我在 Dashboard.html 和 locationProvider.html5mode 和 hasprefix 中添加了&lt;base href="/" /&gt;,但对我没有任何帮助。请让我知道我在哪里失踪..

【问题讨论】:

【参考方案1】:

听起来您正在尝试使用不支持的 ngRoute 实现某种版本的嵌套视图。我建议使用支持嵌套状态的ui-router。

【讨论】:

【参考方案2】:

$location.path() 应设置为与您的路由配置匹配的 url 值.....而不是模板路径

尝试改变

$location.path('DashboardMenu.html')

$location.path('/')

与您的 href 值相同.... 应该是 url 而不是模板

改变

<a href="../partials/Projects.html" class="thumbnail">

<a href="/Projects" class="thumbnail">

注意:确保服务器配置为使用html5Mode


您还需要从路由使用的模板中删除ng-controller,这些模板已经在路由配置中声明了控制器。否则,您最终将运行 2 个控制器实例

可能建议你多学习一些教程

【讨论】:

代码 $location.path('DashboardMenu.html') 在 loginService,js 文件中。请参考上面的文件夹结构。我什至将其更改为 location.path('/')。还按照指示更改了 href 值。模板文件中没有控制器。我仍然无法在 ngview 设置为 DashboardMenu,html 的情况下重定向到 Dashboard.html。 服务器是否配置为 html5mode?我真的认为您需要花更多时间学习有关所有这些工作原理的教程。 path() 永远不会指向模板文件

以上是关于用于创建母版页子页面效果的 Angular JS的主要内容,如果未能解决你的问题,请参考以下文章

Usercontrol从内容页面的母版页访问Javascript

mvc 母版页问题 我在网前台用一个母版页 其他页面调用母版页都没有问题

.net母版页中使用JS结合CSS的问题

ASP.NET内容页中访问母版页中的对象

Jquery 不能在使用 ASP.NET C# 的母版页中工作,并且在不使用母版页的情况下工作正常

在 asp.net 母版页中更改页脚颜色