如何查看第Angular个模板?
How to view first Angular template?
我正在尝试构建一个非常基本的 Angular 应用程序,但我无法查看第一个模板。我的 html 看起来像这样:
<html ng-app="formApp">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>
<script src="js/controllers.js"></script>
<script src="js/app.js"></script>
</head>
<body>
<div ng-view></div>
</body>
</html>
我的 app.js
是这样的:
'use strict';
var formApp = angular.module('formApp', ['ui.router']);
formApp.config(function($stateProvider, $urlRouterProvider){
$stateProvider
.state('main', {
url: '/main',
templateUrl: 'templates/main.html',
controller: 'MainCtrl'
});
$urlRouterProvider.otherwise('/main')
});
和我的 controllers.js
是这样的:
var formControllers = angular.module('formControllers', []);
formControllers.controller('MainCtrl', function($scope){
$scope.lala = 'lalallala';
});
名称 templates/main.html
下的模板如下所示:
<h1>Yes yes people</h1>
{{lala}}
所以我使用命令 http-server -a 0.0.0.0 -p 8000
开始 node
,然后在浏览器中转到 http://0.0.0.0:8000/
。不幸的是,屏幕仍然是白色的。它确实从服务器加载(我看到它向终端中的节点发出请求)但我在浏览器中看不到任何东西。我尝试了各种网址,例如:
http://0.0.0.0:8000/
http://0.0.0.0:8000/#
http://0.0.0.0:8000/#/main
http://0.0.0.0:8000/app
http://0.0.0.0:8000/app/#/
但没有任何效果。
有人知道如何查看我创建的第一个模板吗?欢迎所有提示!
[编辑]
控制台没有给出任何错误,当我查看页面的源代码时,我确实看到了我的 html。我只是没有看到我在 main.html 中定义的 Yes yes people
之类的东西。所以我的模板根本没有加载。有什么想法吗?
由于您在单独的 formControllers
模块中定义了控制器,因此您需要将其作为主应用模块的依赖项提供:
var formApp = angular.module('formApp', ['ui.router', 'formControllers']);
对于 UI-路由器,您应该使用 ui-view 指令而不是 ng-view。所以你的 html 应该是这样的:
<html ng-app="formApp">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>
<script src="js/controllers.js"></script>
<script src="js/app.js"></script>
</head>
<body>
<div ui-view></div>
</body>
</html>
我正在尝试构建一个非常基本的 Angular 应用程序,但我无法查看第一个模板。我的 html 看起来像这样:
<html ng-app="formApp">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>
<script src="js/controllers.js"></script>
<script src="js/app.js"></script>
</head>
<body>
<div ng-view></div>
</body>
</html>
我的 app.js
是这样的:
'use strict';
var formApp = angular.module('formApp', ['ui.router']);
formApp.config(function($stateProvider, $urlRouterProvider){
$stateProvider
.state('main', {
url: '/main',
templateUrl: 'templates/main.html',
controller: 'MainCtrl'
});
$urlRouterProvider.otherwise('/main')
});
和我的 controllers.js
是这样的:
var formControllers = angular.module('formControllers', []);
formControllers.controller('MainCtrl', function($scope){
$scope.lala = 'lalallala';
});
名称 templates/main.html
下的模板如下所示:
<h1>Yes yes people</h1>
{{lala}}
所以我使用命令 http-server -a 0.0.0.0 -p 8000
开始 node
,然后在浏览器中转到 http://0.0.0.0:8000/
。不幸的是,屏幕仍然是白色的。它确实从服务器加载(我看到它向终端中的节点发出请求)但我在浏览器中看不到任何东西。我尝试了各种网址,例如:
http://0.0.0.0:8000/
http://0.0.0.0:8000/#
http://0.0.0.0:8000/#/main
http://0.0.0.0:8000/app
http://0.0.0.0:8000/app/#/
但没有任何效果。
有人知道如何查看我创建的第一个模板吗?欢迎所有提示!
[编辑]
控制台没有给出任何错误,当我查看页面的源代码时,我确实看到了我的 html。我只是没有看到我在 main.html 中定义的 Yes yes people
之类的东西。所以我的模板根本没有加载。有什么想法吗?
由于您在单独的 formControllers
模块中定义了控制器,因此您需要将其作为主应用模块的依赖项提供:
var formApp = angular.module('formApp', ['ui.router', 'formControllers']);
对于 UI-路由器,您应该使用 ui-view 指令而不是 ng-view。所以你的 html 应该是这样的:
<html ng-app="formApp">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>
<script src="js/controllers.js"></script>
<script src="js/app.js"></script>
</head>
<body>
<div ui-view></div>
</body>
</html>