Angularjs ng-view没有响应

时间:2016-05-25 21:33:09

标签: angularjs javascript-events

我正在玩angularjs,我找不到ng-view无效的原因。我做错了什么?



var app = angular.module('Demo', ['ngRoute'])
.config(function ($routeProvider) {
    $routeProvider.when('#/about', {
        templateUrl: 'about.html',
        controller: 'homeController'
    });
    $routeProvider.when('#/contacts', {
        template: 'contacts.html',
        controller: 'contactsController'
    });
});
app.controller('homeController', function ($scope) {
    alert('homeController');
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src=""//ajax.googleapis.com/ajax/libs/angularjs/X.Y.Z/angular-route.js""></script>
<body ng-app>
<div class="menu">
    <ul>
        <li><a href="#/about">About</a></li>
        <li><a href="#/contacts">Contacts</a></li>
    </ul>
</div>

<div class="MainContent">
    <div ng-view></div>
</div>

<template id="about.html">
  about
</template>

<template id="contacts.html">
  contacts
</template>
  </body>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

这里有一些问题:

  • 您在HTML部分中的angular-route脚本源不正确。
  • 你的$ routeProvider.when行不需要&#39;#&#39;,所以我删除了它们。
  • 您的一个模板使用了templateUrl,这是不正确的。它应该只是模板:因为你没有调用URL。

这是一个工作的plunker: https://plnkr.co/edit/GSoJ4sAxM8joH6zmrxjf?p=preview

var app = angular.module('demo', ['ngRoute'])

// URLs should not have # in them
.config(function ($routeProvider) {
    $routeProvider.when('/about', {
        template: 'about.html',
        controller: 'homeController'
    });
    $routeProvider.when('/contacts', {
        template: 'contacts.html',
        controller: 'contactsController'
    });
});

app.controller('homeController', function ($scope) {
    alert('homeController');
});

app.controller('contactsController', function ($scope) {
    alert('contactsController');
});