2013-03-09 7 views
31

पर नॉकआउट.जेएस "यदि बाध्यकारी" है तो क्या एक से अधिक बूलियन पर नॉकआउट के if binding का उपयोग करना संभव है?एकाधिक बूलियन

जैसे

<div data-bind="if: (property.aTrueValue && property.anotherTrueValue)">... 

मैं अलग वाक्य रचना का एक बहुत कोशिश की है, लेकिन सही वाक्य रचना को खोजने के लिए प्रतीत नहीं कर सकते हैं। मुझे यकीन नहीं है कि यह भी संभव है।

उत्तर

44

जब नॉकआउट आपके बाइंडिंग को संसाधित करता है तो यह पहली बार आपकी अभिव्यक्ति का मूल्यांकन करता है।

यदि अभिव्यक्ति का परिणाम देखने योग्य होता है, तो यह अंतिम मूल्य प्राप्त करने के लिए एक सुविधा के रूप में अवलोकन योग्य का मूल्यांकन करता है यदि: काम करता है।

तो दो निम्नलिखित काम हूबहू

<div data-bind="if: foo"></div> 
<div data-bind="if: foo()"></div> 

बार जब आप एक नमूदार में समाप्त होने वाले सरल अभिव्यक्ति की दुनिया को छोड़, तो आप शायद भी पीछे छोड़ चीनी और हमेशा (विवेक अगर कुछ नहीं के लिए observables का मूल्यांकन अपने आप करना चाहते हैं अन्य)।

निम्नलिखित

<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">... 
+0

धन्यवाद, यह वही है जो मुझे करने की ज़रूरत है। –

3

आप कर सकते हैं की कोशिश करो - बस बाध्यकारी एक मनमाना अभिव्यक्ति लगता है। जब ऐसे ही एक नमूदार का मूल्य संदर्भित की तुलना में अधिक कर रही है, आप वास्तव में इतने तरह नमूदार कॉल करने के लिए की आवश्यकता होगी:

<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">... 

यहाँ एक काम कर jsfiddle है।

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