1. ホーム
  2. javascript

[解決済み] シンプルなng-includeが動作しない

2022-02-04 18:53:50

質問

AngularJSを初めて使うのですが、ヘッダーとフッターにng-includeを使うのに苦労しています。

これが私のツリーです。

myApp
assets
   - CSS
   - js
        - controllers
        - vendor
             - angular.js
             - route.js
             ......
             ......
             ......
        main.js
pages
   - partials
        - structure
              header.html
              navigation.html
              footer.html
   index.html
   home.html

index.htmlです。

<!DOCTYPE html>
<html ng-app="app">
<head>
    <title>AngularJS Test</title>

    <script src="/assets/js/vendor/angular.js"></script>
    <script src="/assets/js/vendor/route.js"></script>
    <script src="/assets/js/vendor/resource.js"></script>
    <script src="/assets/js/main.js"></script>

</head>
    <body>          

        <div ng-include src="partials/structure/header.url"></div>
        <div ng-include src="partials/structure/navigation.url"></div>    

        <div id="view" ng-view></div>   

        <div ng-include src="partials/structure/footer.url"></div>
    </body>
</html>

main.js

var app = angular.module("app", ["ngResource", "ngRoute"]);


app.config(function($routeProvider) {

$routeProvider.when("/login", {
    templateUrl: "login.html",
    controller: "LoginController"
});

$routeProvider.when("/home", {
    templateUrl: "home.html",
    controller: "HomeController"
});

$routeProvider.otherwise({ redirectTo: '/home'});

});

app.controller("HomeController", function($scope) {
    $scope.title = "Home";
});

ホーム.html

<div>
<p>Welcome to the {{ title }} Page</p>
</div>

home.htmlのページを開くと、ヘッダー、ナビ、フッターが表示されないのですが。

どうすればいいですか?

ヘッダーのインクルードを行なっている。 url の代わりに、ヘッダーを使用します。 html . src属性にリテラルを使いたいようなので、@DRiFTyさんのコメントにもあったように、引用符でくくるのがよいでしょう。

変更

 <div ng-include src="partials/structure/header.url"></div>
 <div ng-include src="partials/structure/navigation.url"></div>    

 <div id="view" ng-view></div>   

 <div ng-include src="partials/structure/footer.url"></div>

になります。

 <div ng-include src="'partials/structure/header.html'"></div>
 <div ng-include src="'partials/structure/navigation.html'"></div>    

 <div id="view" ng-view></div>   

 <div ng-include src="'partials/structure/footer.html'"></div>

これがうまくいかない場合、ブラウザのコンソールに404があるかどうかを確認します。