我正在设置一个简单的crud应用程序。但是,我不确定ui-router会发生什么。我读到你应该使用html标签,所以我也试过了。这是我的代码。
app.js
app.get('/templates/:templateid',indexController.getTemplate);
索引控制器
var indexController = {
index: function(req, res) {
res.render('index');
},
getTemplate:function(res,req){
res.render('templates/' + req.params.templateid);
}
};
module.exports = indexController;
这是我的main.js
var app = angular.module('myApp',['ui.router']);
app.config(function($stateProvider,$urlProvider){
$stateProvider('home',{
url:'/home',
templateUrl:'templates/home.jade',
controller: 'HomeController'
})
})
app.controller('HomeController',function($scope){
console.log('home is here');
})
我的index.jade如此显示
extends layout
block content
h1 Lets Get Cruddy
<div ui-view></div>
我在布局中调用了ng-app。这应该相当简单吧?
答案 0 :(得分:0)
路由器只解释html
你应该将模板url指向已编译的html文件,以便
templateUrl:'templates/home.html
如果templates/home.jade
编译为templates/home.html
答案 1 :(得分:0)
正如曼哈顿医生所说,AngularJS不呈现Jade文件,但是,如果你有NodeJS这样的服务器端语言,你可以将视图引擎更改为Jade。
为简单起见,我还建议使用Express创建一个NodeJS应用程序,这样您就可以创建一个路径来渲染视图并利用Jade的简单性。
将以下内容添加到NodeJS应用程序中的App.js文件中:
app.set('view engine', 'jade');
在NodeJS路线中,您将添加以下内容: var router = express.Router();
// index.js
// http://www.yourdomain.com/ is the path to this route
router.get('/', function(req, res, next) {
res.render('home', {
title: 'Express'
});
});
在main.js文件中,您将templateURL更改为以下内容:
templateUrl:'/',
Jade会将模板呈现为HTML并使其对AngularJS可读。