ui路由器不适用于玉?

时间:2015-05-20 06:34:58

标签: angular-ui-router pug

我正在设置一个简单的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。这应该相当简单吧?

2 个答案:

答案 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可读。