2015-05-20 46 views
0

我正在设置一个简单的粗糙应用程序。但是,我不确定使用ui-router会发生什么。我读过你应该使用html标签,所以我也试过这个。这是我的代码。ui路由器不能在玉器中工作吗?

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-应用在我的布局。这应该是相当简单的权利?

回答

0

路由器只解释HTML

所以

templateUrl:'templates/home.html 

那如果templates/home.jade编译成templates/home.html

0

曼哈顿博士说,AngularJS不应该指向模板URL到编译的HTML文件渲染一个Jade文件,但是,如果你有一个服务器端语言,比如NodeJS,你可以将视图引擎更改为Jade。

为了简单起见,我还建议使用Express创建一个NodeJS应用程序,以便您可以创建一个路径来呈现视图并利用Jade的简单性。

以下添加到您的App.js文件在您的应用程序的NodeJS:

app.set('view engine', 'jade'); 

在你路线的NodeJS,您将添加这样的事情: VAR路由器= 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:'/', 

玉将呈现模板,HTML,使其可读的AngularJS。