2013-01-20 24 views
6

मान लीजिए कि मैं उल्का (_ id, user_id, user_name, product_name, price_unit, मात्रा) में एक साधारण product_orders संग्रह है और मैं तालिका के एक ही उपयोगकर्ता के सभी आदेशों जहां प्रत्येक पंक्ति को शामिल करना चाहिए दिखाना चाहते हैं:उल्का के टेम्पलेट में कुछ सरल गणित कैसे करें?

user_name, product_name, quantity, price_unit, quantity, price_total (price_unit * quantity) 

इसके अतिरिक्त मैं सभी उपयोगकर्ता के आदेशों के लिए एक ग्रैंड कुल प्रदर्शित करना चाहता हूं।

मुझे हैंडलबार्स.जेएस टेम्पलेट में ऐसा करने का आसान तरीका नहीं दिख रहा है क्योंकि हैंडलबार सरल गणित परिचालनों का समर्थन नहीं करते हैं। मैं आसानी से product_order के कर्सर को अपने टेम्पलेट पर वापस कर सकता हूं लेकिन टेम्पलेट में price_total और ग्रैंड कुल की गणना करने का आसान तरीका नहीं देख सकता।

मैं किसी प्रकार का टेम्पलेट सहायक बनाने की सोच रहा हूं लेकिन यह सुनिश्चित नहीं है कि यह उचित दिशा है या नहीं। यह समस्या ऐसा लगता है कि इसमें एक साधारण & सुरुचिपूर्ण समाधान होना चाहिए।

उत्तर

13

हां, आपको एक सहायक लिखना चाहिए। हैंडलबार टेम्पलेट्स में तर्क का उपयोग करने का समर्थन नहीं करते हैं (जो एक अच्छा अभ्यास है क्योंकि यह आपको चिंताओं के पैटर्न को अलग करने के लिए मजबूर करता है)।

एक टेम्पलेट सहायक इस तरह दिखता है:

Handlebars.registerHelper("grandTotal", function(user_name) { 
    var grandTotal = some_magic_to_calc_total(user_name); 
    return grandTotal; 
}); 

तो फिर आप अपने टेम्पलेट से इस तरह सहायक कॉल कर सकते हैं:

<template name="foo"> 
    {{grandTotal user_name}} 
</template> 

आप Handlebars.js docs में सहायकों के बारे में अधिक पढ़ सकते हैं।

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

  • कोई संबंधित समस्या नहीं^_^