javascript - Angular UI Router 不渲染嵌套 View 和链接

标签 javascript angularjs angular-ui-router

我一直在学习 Angular,现在我已经学习了一段时间了,我决定制作一个小应用程序来测试我的知识,但是我的应用程序上的链接和嵌套 View 似乎不起作用,原因是我还不能理解,我使用了 angular-ui-router 因为它处理路由之类的东西非常棒。

问题:我试图将路线模板加载到包含 ui-view 的 div 中,但它不起作用。

我有这三个js文件:

第一个config.route.js

'use strict';

angular.module('weekobApp', ['ui.router'])
.config(function($stateProvider, $urlRouterProvider) {

    $urlRouterProvider.otherwise('/');

    $stateProvider

        // route for the home page
        .state('app', {
            url:'/',
            views: {
                'header': {
                    templateUrl : 'app/layout/header.html',
                },
                'content': {
                    templateUrl : 'app/layout/dashboard.html',
                    controller  : 'DashboardController'
                },
                'footer': {
                    templateUrl : 'app/layout/footer.html',
                }
            }

        });
});

dashboard.js

'use strict';

angular.module('weekobApp', [])
    .controller('DashboardController', ['$scope', function ($scope) {
    $scope.myname = "Dashboard";
}]);

最后是 html 文件:

<!DOCTYPE html>
<html ng-app="weekobApp">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Title</title>
    <!-- build:css content/styles/style.css -->
    <link href="content/styles/style.css" rel="stylesheet" />
    <!-- endbuild -->
</head>
<body>

    <div ui-view="header"></div>
    <div ui-view="content"></div>
    <div ui-view="footer"></div>

    <!-- build:js app/main.js -->
    <script src="../../bower_components/angular/angular.min.js"></script>
    <script src="../../bower_components/angular-ui-router/release/angular-ui-router.min.js"></script>
    <script src="../../bower_components/angular-resource/angular-resource.min.js"></script>
    <!-- Dashboard modules -->
    <script src="app/dashboard/config.route.js"></script>
    <script src="app/dashboard/dashboard.js"></script>
    <!-- endbuild -->
</body>
</html>

最佳答案

您应该只声​​明一次模块依赖项列表:

angular.module('weekobApp', ['ui.router']);

angular.module('weekobApp')
     .config(function($stateProvider, $urlRouterProvider) {

angular.module('weekobApp')
     .controller('DashboardController', ['$scope', function ($scope) {

第一行创建模块。另外两个将组件添加到模块中。您的代码覆盖了之前的组件。

关于javascript - Angular UI Router 不渲染嵌套 View 和链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34637900/

相关文章:

angularjs - 如何在 Jasmine/Protractor 中模拟 angular.module ('myModule',[]).value()

JavaScript Action 监听器

javascript - 每个动态生成元素仅单击一次

javascript - Ajax 工具包 : Balloon Popup Extender on html5 Canvas

php - 关于根据另一组禁用一组复选框

javascript - AngularJS:路由到/page/:id 并显示 id 的信息?

javascript - 如何动态设置 Angular Material md-datepicker 指令的 md-min-date/md-max-date?

angularjs - UI 路由器 $stateparams 未在 $state.go() 中注册

javascript - ui-router 版本 0.2.* 已从 npm 中删除

angularjs - 每次激活 angularjs ui-router 命名 View 时如何运行 Controller ?