2012-01-05 12 views
5

में ejs ऑब्जेक्ट तक कैसे पहुंचे I ejs के साथ एक्सप्रेस (node.js के लिए वेब फ्रेमवर्क) का उपयोग कर रहा हूं। अब मैं ejs github page पर वर्णित के रूप में अपने खुद के फिल्टर बनाने के लिए करना चाहते हैं:एक्सप्रेस.जेएस

To add a filter simply add a method to the .filters object: 

ejs.filters.last = function(obj) { 
    return obj[obj.length - 1]; 
}; 

प्रश्न: मैं कैसे उपयोग करते हैं कि EJS आपत्ति? मैं कोशिश की है (भोलेपन से) app.js में:

ejs.filters.myfilter = function (obj) { 
    .... 
} 

जो मुझे त्रुटि देता है:

ReferenceError: ejs is not defined 

उत्तर

10

आप अपने आवेदन में EJS की आवश्यकता होती है और उस पर कोई कस्टम फ़िल्टर सेट है, जो होगा की जरूरत है अपने एक्सप्रेस आवेदन के लिए दृश्यमान रहें। यह भी ध्यान रखें कि आप अपने दृश्य <%=: data_to_be_filtered | your_filter %> में ईजेएस फ़िल्टर का उपयोग कैसे करते हैं।

उदाहरण एप्लिकेशन:

app.js (में/विचारों स्थित)

var app, express = require('express'), ejs = require('ejs'); 

ejs.filters.my_custom_filter = function(ary) { 
    return ary[ary.length - 1]; 
}; 

app = express.createServer(); 

app.configure(function() { 
    app.set('view options', { layout: false }); 
    app.set('view engine', 'ejs'); 
}); 

app.get('/', function(req, res) { 
    res.render('index', { data: [1, 2, 3, 4, 5] }); 
}); 

app.listen(8080); 
console.log('Server started on port 8080'); 

index.ejs

<%=: data | my_custom_filter %> 

GitHub से कोड सीधे डाउनलोड करें: http://github.com/alessioalex/ejs_filters

अधिक जानकारी चेकआउट: https://github.com/visionmedia/ejs

+0

बढ़िया, धन्यवाद! मैं मुख्य रूप से 'आवश्यकता (' ejs ') 'और कॉलन' <% = 'पर लापता था। – topskip

+0

मदद करने में खुशी हुई, यह न भूलें कि आप उत्तर स्वीकार कर सकते हैं (वोटिंग के अलावा)। – alessioalex

+0

क्या ब्लॉक के साथ फ़िल्टर का उपयोग करना संभव है? <% ब्लॉक ('शीर्षक', मालिक | filter_here)%> – chovy