2016-07-17 9 views
6

मैं नोड और एक्सप्रेस के साथ खेल रहा हूं और मैं अपने एचटीएमएल को प्रस्तुत करने के लिए पग (पूर्व में जेड) टेम्पलेटिंग इंजन का उपयोग कर रहा हूं। सब कुछ ठीक काम कर रहा है जब तक कि मैंने अपने एंकर लिंक के href में चर इंजेक्ट करने की कोशिश शुरू नहीं की। क्या अजीब बात यह है कि अगर मैं अपना एक्सप्रेस ऐप view enginejade बदलता हूं तो चीजें अपेक्षित रूप से काम करना शुरू कर देती हैं।पग (पूर्व में जेड) वैरिएबल काम नहीं कर रहे हैं (इंटरपोलिंग) ठीक से एंकर हाफ

other articles के आधार पर मैंने पढ़ा है कि यह समस्या एक इंटरपोलेशन समस्या प्रतीत होती है, हालांकि मुझे ऐसा संसाधन या दस्तावेज नहीं मिल रहा है जो दिखाता है कि इस समस्या को सही तरीके से कैसे ठीक किया जाए।

पूर्व।

मैं rooms जेसन सरणी से डेटा खींच रहा हूं और फिर प्रत्येक सरणी तत्व के माध्यम से चक्र के लिए for पाश का उपयोग कर रहा हूं और प्रत्येक कमरे के लिए डेटा आउटपुट कर रहा हूं। निम्नलिखित कार्यों का उपयोग jade का उपयोग करना।

table.table.table-striped 
    thead 
    tr 
     th Name 
     th Id 
    tbody 
    each room in rooms 
     tr 
     td(style="width: 50px;") 
      a(href!="/admin/rooms/delete/#{room.id}") Delete 
     td #{allTitleCase(room.name)} 
     td #{room.id} 

उपरोक्त pug का उपयोग सही ढंग से काम नहीं करता है। विशेष रूप से a(href='/admin/rooms/delete/#{room.id}') Delete लिंक सही तरीके से काम नहीं करता है। लिंक href में कमरे आईडी इंजेक्शन करने के बजाय, यह सचमुच # {room.id} को href लिंक के अंत भाग के रूप में आउटपुट करता है।

कोई विचार pug में इसे कैसे ठीक किया जाए?

ध्यान दें कि मैंने pug का उपयोग करके निम्नलिखित सभी को आजमाया है लेकिन इनमें से कोई भी विकल्प काम नहीं कर पाया है।

  • a(href="/admin/rooms/delete/#{room.id}") Delete
  • a(href!="/admin/rooms/delete/#{room.id}") Delete

उत्तर

11

अद्यतन: पग 2.0 कैसे प्रक्षेप नियंत्रित किया जाता है में परिवर्तन को तोड़ने की शुरुआत की।

पर the changelog आधार पर निम्न चाहिए काम के किसी भी:

// to solve OP's problem, the following can be used: 
a(href="/admin/rooms/delete/" + room.id) Delete 

// Here are a few additional scenarios which use the new API 
// for anyone stumbling across this answer in the future 
- var href = "/admin/rooms/delete/" + room.id; 
a(href=href) 
a(href=`${href}`) // Node.js/io.js ≥ 1.0.0 
a(href=href + '?foo=bar') 
+0

मदद के लिए धन्यवाद, दुर्भाग्य से यह मेरे लिए काम नहीं किया। हालांकि, यह जेड-लैंग वेबसाइट पर काम करता था, लेकिन यह 'एक्सप्रेस इंजन' के रूप में 'पग' चलाने वाले मेरे एक्सप्रेस ऐप में काम नहीं करता है। मुझे लगता है कि यह जेड-लैंग वेबसाइट पर काम करता है क्योंकि यह वास्तव में 'जेड' और 'पग' का उपयोग नहीं कर रहा है। – Corey

+1

क्या आपने [पग 2.0 चेंजलॉग] (https://github.com/pugjs/pug/issues/2305) के माध्यम से पढ़ा है? – pdoherty926

+0

आपके द्वारा सुझाए गए चेंजलॉग की जांच करने के बाद, मैंने इसे समझ लिया ... मैंने एंकर लिंक को 'a (href = "/ admin/rooms/delete /" + room.id) हटाएं' और यह काम किया। मदद के लिए धन्यवाद, मैं इसकी सराहना करता हूं। क्या आप सही कोड को शामिल करने के लिए अपना उत्तर संपादित कर सकते हैं? यदि ऐसा है तो मैं आगे बढ़ जाऊंगा और अपना उत्तर सही चिह्नित करूंगा। – Corey

संबंधित मुद्दे