1

我现在通过跟随Egghead.io上的视频来学习Angular.js。我在the $routeProvider video,我的应用根本不是路由。

它的超基本的,这里的脚本(app.js):

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

// routes 
app.config(function ($routeProvider) { 
    $routeProvider.when('/pizza', { template: 'Yum!!' }); 
}); 

app.controller('FirstCtrl', function ($scope) { 
    $scope.data = { message: "Hello" }; 
}); 

和HTML:

<div ng-app="myApp"> 
    <div ng-controller="FirstCtrl"> 
    {{data.message + " world"}} 
    </div> 
</div> 

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.min.js"></script> 
<script src="app.js"></script> 

从我的理解,http://host/#/pizza应该简单地显示 “百胜!”因为我在模板中传递了一个字符串。它似乎没有做任何事情,但我仍然得到“Hello world”,由FirstCtrl评估。

为什么$routeProvider在我的应用程序中不做任何事情?

回答

11

您需要将ng-view元素放在您希望routeProvider粘贴页面模板的位置。这表明它像下面

<div ng-app="myApp"> 
    <div ng-controller="FirstCtrl"> 
     {{data.message + " world"}} 
     <ng-view></ng-view> 
    </div> 
</div> 
+0

卫生署......就是这样。谢谢! – Chaddeus

2

注意让你跨浏览器兼容。

<div ng-view> </div> 

或者,对于这个问题:

<ANY ng-view> </ANY> 

的更多信息,请访问: http://docs.angularjs.org/api/ng.directive:ngView

+0

不是非常重要,但在第二个代码块中缺少'<'。 – Travis

+1

糟糕。你是对的 - 修正它。 –