一台服务器可以提供2个angularjs模块/路由吗?

时间:2017-06-30 14:30:56

标签: javascript angularjs express angular-ui-router html5mode

(我重新编辑了我的初步问题以更好地解释上下文。)

我有一个使用angular-ui-routerhtml5mode构建的均值堆栈网站。 routes/index.js包含以下代码,views/index.html代码为<ui-view></ui-view>,是所有页面的入口点。因此,浏览器中的https://localhost:3000/XXXX将保持不变(而不是添加#),并根据路由器显示相应的内容。

router.get('*', function(req, res) {
    console.log("router.get *");
    res.sendfile('./views/index.html');
});

现在,由于xulrunner-1.9.2.25.en-US.win64.zip,我希望views/addin.html包含office.js和另一个路由器,以便该网站提供一组网址https://localhost:3000/addin/XXXX,而我不要介意它是否html5mode(某个网址可能包含#)。为此,我在addin中为routes/index.js添加了一个块:

router.get('/addin/*', function (req, res) {
    console.log("router.get /addin/*");
    res.sendfile('./views/addin.html')
});

router.get('*', function(req, res) {
    console.log("router.get *");
    res.sendfile('./views/index.html');
});

这是views/addin.html

<html>
<head>
    <title>addinF</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.2/angular-ui-router.js"></script>
</head>
<body ng-app="addinF">
    addin content
    <ui-view ng-cloak></ui-view>
</body>
<script>
    var addinApp = angular.module('addinF', ['ui.router'])
    addinApp.config(['$stateProvider', function ($stateProvider) {
        $stateProvider
            .state('addinNew', {
                url: '/addin/new',
                template: "new page"
            })
            .state('addinHome', {
                url: '/addin/home',
                template: "home page"
            })
    }]);
</script>
</html>

但是,加载https://localhost:3000/addin/newhttps://localhost:3000/addin/home只会显示addin content,并且不会在控制台中显示new pagehome page;它也没有引起任何错误。

有人能告诉我缺少什么吗?一台服务器可以提供2个angularjs模块或路由吗?

1 个答案:

答案 0 :(得分:0)

只需添加初始重定向:

appAddin.config(['$urlRouterProvider', function ($urlRouterProvider) {
    $urlRouterProvider.otherwise("/addin/new");
}])

有一个working plunker