Angular rotue提供程序不使用Require JS

时间:2016-12-18 13:47:28

标签: angularjs requirejs angular-routing route-provider

我是Angular JS的新手。 我正在做一些带有需要JS的练习演示以及使用路径提供程序在一个定义良好的文件夹结构中的角度路由。

我尝试搜索类似的角度路由器问题,但大多数都没有任何文件夹结构,他们的代码存在于脚本标记中。

我希望有人有耐心快速查看和检查为什么路线提供者似乎没有功能,尽管一切似乎都是正确的。 :)

反正 我有一个index.html,只需要使用源

加载require JS

的index.html

<!DOCTYPE html>
<html>
    <head>  
    <title>MyApp</title>
    <meta charset="utf-8"/>

    <script data-main="assets/require/requireConfig" src="assets/vendor/require.js"></script>
    <link rel="stylesheet" href="assets/css/site.css">
    </head>

    <body>
        <ng-view></ng-view>
    </body>
</html>

Require JS源如下所示'router'是标准的angular-router。 'myApp'将是我要去引导的应用程序。

Require JS的数据来源

requirejs.config({
    baseUrl: 'assets',

    paths: {
        'myApp': 'require/myApp',
        'angular': 'vendor/angular',
        'router': 'vendor/angular-route',
        'domReady': 'vendor/dom-ready'
    },

    //Shim is also used to specify if one module must be loaded only after another
    //angular does not support AMD out of the box, put it in a shim
    shim: {
        'angular': {
            exports: 'angular'
        },
        'router': {
            deps: ['angular'],
            exports: 'router'
        }
    },

    // kick start application
    // The ./ represents the base URL given at the top
    deps: ['./require/startup']
});

所以现在我要运行startup.js来引导我的app文件 以下是我的startup.js的外观

角度引导

 define([
    'require',
    'angular',
    'myApp'
], function (require, angular) {
    'use strict';

    require(['domReady!'], function (document) {
        angular.bootstrap(document, ['myApp']);
    });
});

最后...... 导致所有问题的路由提供程序在myApp.js

中定义
define(['angular','router'], function (angular) {
    'use strict';

    var myApp =  angular.module('myApp', ["ngRoute"]);

    myApp.config(['$routeProvider', function ($routeProvider) {
        $routeProvider.when('/login', {
            templateUrl: '../../modules/login/login.html'
        });

        $routeProvider.when('/home', {
            templateUrl: '../../modules/home/homepage.html'
        });

    }]);
});

好的,我在nginx服务器上运行应用程序。

http://localhost/login 
    OR
http://localhost/home

不会指示我在模板中指定的必需页面。

然而

  1. 如果我指定“$ routeProvider.otherwise”,它总是会重定向到它。

  2. 如果我将$ routeProvider.when(“/ login”)更改为 $ routeProvider.when(“/”),路由器打开登录页面但是 抱怨没有与指定视图关联的控制器。 (因此我的结论是模板URL指向正确)

  3. 决定创建控制器'loginController'会引发'控制器未注册'的错误。当我挖掘时,这是由于自举。 (什么?对于requireJS有什么好处?但我会再把这个问题留下来了)
  4. 那么,为什么路由提供商会出现这种奇怪的行为? 我不明白吗?

0 个答案:

没有答案