Using layout in Sails JS
sailsjs
1
layout
2
Male avatar

Nguyen Trong Tuan viết ngày 07/07/2015

Mình xin được giới thiệu về 4 cách sử dụng layout trong SailsJS mà mình biết:
Cách 1:
Đây là cách mặc định của SailsJS, layout dùng cho project sẽ được cấu hình trong file [/config/views.js] tại dòng :

layout: 'layout'

Nếu layout của bạn nằm trong subfolder của views, khi đó bạn cần thêm đường dẫn cho nó:

layout: 'subfolder/subfolder/.../layout'

Cách 2:
Với cách này, việc cấu hình layout được chuyển sang file [config/routes.js]:

'get /privacy': {
    view: 'users/privacy',
    locals: {
        layout: 'users'
    }
},

Bạn có thể thấy ở đây, layout được cấu hình cho từng view một (view: 'users/privacy'), cách làm này mình thấy khá tốn thời gian và công sức cho việc maintain.
Cũng như ở trên, nếu layout nằm trong subfolder, ta cũng phải thêm đường dẫn.
Cách 3:
Cách làm này thực chất giống cách 2, nhưng thay vì cấu hình trong router, chúng ta sẽ cấu hình trong action của một controller.

module.exports = { 
  index: function(req, res){
    return res.view('pathToView', { layout: 'layout' });
  }
}

Ngoài ra cách này còn có một version khác:

module.exports = { 
  index: function(req, res){
    res.locals.layout = 'layout';
    return res.view('pathToView');
  }
}

Cách 4:
Cách này mình tham khảo được trên mạng và đang áp dụng trong project của mình.
Bạn sẽ thêm thông tin cấu hình layout ở trong controller, ví dụ trong file [api/controllers/abcController.js]

module.exports = {
    action1name:function(req,res){

    },
    action2name:function(req,res){

    },
    _config:{
        locals:{
            layout: 'layout'
        }
    }

Với cách làm này, tất cả các action trong controller khi trả về res.view/redirect......đều sẽ sử dụng chung 1 layout đã được cấu hình.
Bản thân mình thấy cách này là hay nhất vì không phải mất công cấu hình layout cho từng view riêng lẻ, dễ bảo chì, thay đổi.
Đây là 4 cách sử dụng layout trong SailsJS, cảm ơn các bạn đã theo dõi :D

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

Nguyen Trong Tuan

4 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
1 4
Để lấy giá trị của các biến được truyền trên url dùng jQuery, ta sử dụng hàm sau: function GetURLParameter(sParam) { var sPageURL = window.loca...
Nguyen Trong Tuan viết hơn 2 năm trước
1 4
Male avatar
1 0
Trong khai báo model của SailsJS, nếu chúng ta không khai báo schema thì khi dùng hàm ModelName].create(req.params.all(),...); toàn bộ các tham số ...
Nguyen Trong Tuan viết hơn 2 năm trước
1 0
Bài viết liên quan
White
1 2
Do cơ chế render tuyệt vời của Grails mà chúng ta có thể khai báo sử dụng các biến ở các layout mà có thể thay đổi từ view được. Bí quyết nằm ở th...
Đỗ Danh Mạnh viết gần 3 năm trước
1 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
4 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!