angular js ng-view returns blanc partials -- Express/Jade
angular js ng-view returns blanc partials -- Express/ Jade
我正在按照教程编写 angular 应用程序。令我惊讶的是,我完全遵循并且我的节点 js 开始正常没有问题。然而,我的 angular 并没有像假设的那样 returning 模板。我看到了类似的问题 here 相同的教程和相同的问题。然而,这个问题没有得到回答。下面是我的目录结构
app.js
var app = angular.module('app', ['ngResource', 'ngRoute']);
angular.module('app').config(function($routeProvider, $locationProvider){
$locationProvider.html5Mode(true);
$routeProvider
.when('/', { templateUrl: 'partials/main', controller: 'mainCtrl'});
});
angular.module('app').controller('mainCtrl', function($scope){
$scope.myVar = "Hello Angular";
});
我的layout.jade
doctype html
head
link(rel="styleSheet",href="css/bootstrap.css")
link(rel="styleSheet",href="vendor/toastr/toastr.css")
link(rel="styleSheet",href="css/site.css")
body(ng-app='app')
block main-content
include scripts
我的main.jade
h1 This is a partial
h2 {{ myVar }}
我server.js中的路由设置为
app.get('partials/:partialPath',function(req,res){
res.render('partials/' + req.params.partialPath);
});
app.get('*', function(req,res){
res.render('index');
});
我的index.jade
extends ../includes/layout
block main-content
section.content
div(ng-view)
虽然我认为这不应该是一个问题,因为我从一个页面的部分视图开始。当我 运行 时,我的页面 return 变黑了。我检查了元素并确保加载了所有 js 和 css。当我查看源代码时,生成了下面的 html 源代码。
<!DOCTYPE html>
<head><link rel="styleSheet" href="css/bootstrap.css">
<link rel="styleSheet" href="vendor/toastr/toastr.css">
<link rel="styleSheet" href="css/site.css">
</head>
<body ng-app="app">
<section class="content">
<div ng-view></div></section>
<script type="text/javascript" src="vendor/jquery/dist/jquery.js"></script><script type="text/javascript" src="vendor/angular/angular.js"></script>
<script type="text/javascript" src="vendor/angular-resource/angular-resource.js"></script>
<script type="text/javascript" src="vendor/angular-route/angular-route.js"></script><script type="text/javascript" src="app/app.js"></script>
</body>
我怀疑我的 app.js 这里有 routeProvider
.when('/', { templateUrl: 'partials/main', controller: 'mainCtrl'});
尝试过
.when('/', { templateUrl: '/partials/main', controller: 'mainCtrl'});
一切都无济于事。请问我哪里出错了?我已经尝试了所有可能的方法。我什至重新启动了 tut,但仍然是空白。任何帮助将不胜感激。
感谢您的宝贵时间。原来问题出在我的布局上
doctype html
head
link(rel="styleSheet",href="css/bootstrap.css")
link(rel="styleSheet",href="vendor/toastr/toastr.css")
link(rel="styleSheet",href="css/site.css")
body(ng-app='app')
block main-content
include scripts
改为
doctype html
head
base(href='/')
link(rel="styleSheet",href="css/bootstrap.css")
link(rel="styleSheet",href="vendor/toastr/toastr.css")
link(rel="styleSheet",href="css/site.css")
body(ng-app='app')
block main-content
include scripts
缺少的是
base(href='/')
如果您删除该基础,它不会加载模板。我从 tut plus 的另一个 tut 视频中了解到这一点“[Tuts Plus] 使用 AngularJS 视频教程从头开始构建 Web 应用程序”。主持人特别提到 base(href='/')
的重要性,并警告永远不要忘记。或者,@Alex Choroshin 的回答 here 中还有另一个很好的例子。你应该下载他建议的文档。这是一个完美的例子。谢谢
我正在按照教程编写 angular 应用程序。令我惊讶的是,我完全遵循并且我的节点 js 开始正常没有问题。然而,我的 angular 并没有像假设的那样 returning 模板。我看到了类似的问题 here 相同的教程和相同的问题。然而,这个问题没有得到回答。下面是我的目录结构
app.js
var app = angular.module('app', ['ngResource', 'ngRoute']);
angular.module('app').config(function($routeProvider, $locationProvider){
$locationProvider.html5Mode(true);
$routeProvider
.when('/', { templateUrl: 'partials/main', controller: 'mainCtrl'});
});
angular.module('app').controller('mainCtrl', function($scope){
$scope.myVar = "Hello Angular";
});
我的layout.jade
doctype html
head
link(rel="styleSheet",href="css/bootstrap.css")
link(rel="styleSheet",href="vendor/toastr/toastr.css")
link(rel="styleSheet",href="css/site.css")
body(ng-app='app')
block main-content
include scripts
我的main.jade
h1 This is a partial
h2 {{ myVar }}
我server.js中的路由设置为
app.get('partials/:partialPath',function(req,res){
res.render('partials/' + req.params.partialPath);
});
app.get('*', function(req,res){
res.render('index');
});
我的index.jade
extends ../includes/layout
block main-content
section.content
div(ng-view)
虽然我认为这不应该是一个问题,因为我从一个页面的部分视图开始。当我 运行 时,我的页面 return 变黑了。我检查了元素并确保加载了所有 js 和 css。当我查看源代码时,生成了下面的 html 源代码。
<!DOCTYPE html>
<head><link rel="styleSheet" href="css/bootstrap.css">
<link rel="styleSheet" href="vendor/toastr/toastr.css">
<link rel="styleSheet" href="css/site.css">
</head>
<body ng-app="app">
<section class="content">
<div ng-view></div></section>
<script type="text/javascript" src="vendor/jquery/dist/jquery.js"></script><script type="text/javascript" src="vendor/angular/angular.js"></script>
<script type="text/javascript" src="vendor/angular-resource/angular-resource.js"></script>
<script type="text/javascript" src="vendor/angular-route/angular-route.js"></script><script type="text/javascript" src="app/app.js"></script>
</body>
我怀疑我的 app.js 这里有 routeProvider
.when('/', { templateUrl: 'partials/main', controller: 'mainCtrl'});
尝试过
.when('/', { templateUrl: '/partials/main', controller: 'mainCtrl'});
一切都无济于事。请问我哪里出错了?我已经尝试了所有可能的方法。我什至重新启动了 tut,但仍然是空白。任何帮助将不胜感激。
感谢您的宝贵时间。原来问题出在我的布局上
doctype html
head
link(rel="styleSheet",href="css/bootstrap.css")
link(rel="styleSheet",href="vendor/toastr/toastr.css")
link(rel="styleSheet",href="css/site.css")
body(ng-app='app')
block main-content
include scripts
改为
doctype html
head
base(href='/')
link(rel="styleSheet",href="css/bootstrap.css")
link(rel="styleSheet",href="vendor/toastr/toastr.css")
link(rel="styleSheet",href="css/site.css")
body(ng-app='app')
block main-content
include scripts
缺少的是
base(href='/')
如果您删除该基础,它不会加载模板。我从 tut plus 的另一个 tut 视频中了解到这一点“[Tuts Plus] 使用 AngularJS 视频教程从头开始构建 Web 应用程序”。主持人特别提到 base(href='/')
的重要性,并警告永远不要忘记。或者,@Alex Choroshin 的回答 here 中还有另一个很好的例子。你应该下载他建议的文档。这是一个完美的例子。谢谢