0

ルートの構成を備えた単純な Web サイトを作成しました。モジュールとコントローラーに IIF JavaScript を使用していますが、ルーティングが機能しません。

このようにデフォルトのローカルホストを入力した場合にのみ機能しますが、任意のルートをhttp://localhost:18689試すと、404 が表示されます。http://localhost:18689/maindashboard$location.path('/addrequest')

問題はIIFでしょうか?

私のモジュールはこれです:

(function () {
    "use strict";

    var clientAppModule = angular.module('clientAppModule', ["ngRoute", "ui.bootstrap", "ngResource"]);

    clientAppModule.config(function ($routeProvider, $locationProvider) {
    $routeProvider
        .when("/maindashboard", {
            templateUrl: "app/maindashboard/maindashboard.html",
            controller: "mainDashboardController"
        })
        .when("/addrequest", {
            templateUrl: "app/addrequest/addrequest.html",
            controller: "addRequestController"
        })
        .otherwise({
            redirectTo: "/maindashboard"
        });

      $locationProvider.html5Mode(true);

     });
}());

インデックスページ:

<!DOCTYPE html>
<html ng-app="clientAppModule">
<head>
    <title></title>
    <!-- CSS -->
    <link href="Content/css/font-awesome.css" rel="stylesheet" />
    <!-- Libraries -->
    <script src="Scripts/angular.js"></script>
    <script src="Scripts/angular-route.min.js"></script>
    <script src="Scripts/angular-resource.min.js"></script>
    <script src="Scripts/angular-ui/ui-bootstrap-tpls.min.js"></script>
    <!-- Code -->
    <script src="App/clientAppModule.js"></script>
    <script src="App/Index/indexController.js"></script>
    <script src="App/MainDashboard/mainDashboardController.js"></script>
    <script src="App/AddRequest/addRequestController.js"></script>
    <base href="/">
</head>
<body class="container">
    <h1>New Turning Point and Care Point Test Frame</h1>
    <div>

        <br /> 3 + 5 =
        {{3+5}}
        <br />

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

メインのダッシュボード コントローラーは次のとおりです。

(function () {
    'use strict';

    var mainDashboardController = function ($scope) {
        $scope.TestObj = 'testmainDashboardController';
        $scope.showAddRequest = function () {
            $location.path('/addrequest');
        };
    };

    var app = angular.module('clientAppModule');
    app.controller("mainDashboardController", mainDashboardController);
})();

addrequest コントローラは、単なるテストに似ています

4

1 に答える 1

1

あなたの問題は、$locationパラメータが欠落していることですmainDashboardController

var mainDashboardController = function ($scope, $location)

また、コードを最小限に抑えることを計画している場合は、インライン構文を使用してコントローラーを作成するときに依存関係を宣言する必要があります。

app.controller('mainDashboardController', ['$scope', '$location', mainDashboardController]);

または角型インジェクター

mainDashboardController.$inject = ['$scope', '$location']

そうすれば、最小化ツールがパラメーター名をaまたはbその他に変更すると、angular はそれらが本来あるべきものを認識します。

于 2015-05-27T14:40:15.370 に答える