के अंदर है कि अगर मैं कुछ ऐसा था चलाने के लिए?कैसे एक JavaScript फ़ंक्शन एक namespace
App.editingMode();
लेकिन फिर setEditingMode
पर जाने के लिए मैं क्या करूं ??
के अंदर है कि अगर मैं कुछ ऐसा था चलाने के लिए?कैसे एक JavaScript फ़ंक्शन एक namespace
App.editingMode();
लेकिन फिर setEditingMode
पर जाने के लिए मैं क्या करूं ??
आप window
के साथ जोड़ते, उदाहरण के लिए एक के लिए एक संदर्भ वापसी या अन्यथा यह समारोह के बाहर से सुलभ बनाने के लिए, की आवश्यकता होगी (प्रभावी रूप से यह कर रही एक वैश्विक) या App
वस्तु।
आप आप क्या चाहते हैं पूरा करने के लिए एक अलग संरचना का उपयोग कर सकते हैं। मुझे नहीं पता कि यह आपके द्वारा उपयोग किए जा रहे किसी और चीज़ को तोड़ देगा, इसलिए मैं आपको एक उदाहरण दूंगा। मुझे यकीन नहीं है कि यह वास्तविक समाधान है, कृपया एक नज़र डालें और मुझे बताएं कि क्या आपको इसकी आवश्यकता नहीं है। यदि आप का उपयोग करें:
var App = {
editingMode:
{
setEditingMode: function(entityID) {
$('#editingMode').val('1');
$.ajax({
type: "POST",
url: "/Organisations/Manage/LockEntity/",
data: "entityID=" + entityID
});
},
setEditingModeOff: function(entityID) {
if ($("#myform").valid() == true)
{
$('#editingMode').val('0');
$.ajax({
type: "POST",
url: "/Organisations/Manage/UnlockEntity/",
data: "entityID=" + entityID
});
}
}
}
};
आप editingMode के तरीकों इस तरह कॉल कर सकते हैं:
App.editingMode.setEditingModeOff(1);
सूचना है कि वे अभी भी एप्लिकेशन में समझाया जाएगा, आप आवश्यक रूप से उन वैश्विक क्षेत्र में ले जाने नहीं है।
के दर्जनों है बेहतर है। लेकिन यह लगभग मुझे क्यों बिल्कुल नेमस्पेसिंग से परेशान करता है:/ – Cameron
यह हमेशा उपयोगी है, मुझे नहीं लगता कि मैं एक टिप्पणी में स्वीकृत वर्णों की संख्या में लाभ सूचीबद्ध कर सकते हैं करते हैं। जब आपके पास दर्जनों ऑब्जेक्ट्स के साथ दर्जनों ऑब्जेक्ट्स के साथ एक बड़ी परियोजना है, तो आप नेमस्पेसिंग की सराहना करेंगे :) – Nikoloff
हालांकि इस सवाल का जवाब 'Nikoloff' द्वारा दिए गए आप उन कार्यों कॉल करने के लिए, लेकिन मैं कुछ अलग (और शायद बेहतर) दृष्टिकोण के लिए बाहर बिंदु होगा सक्षम बनाता है। के बाद 'मॉड्यूल' पैटर्न अवधारणा सिर्फ प्रभावी रूप से आपकी समस्या का समाधान नहीं होगा, लेकिन यह भी आप निजी चर के लिए अनुमति देते हैं। (जावास्क्रिप्ट में मॉड्यूल पैटर्न 'के लिए खोजें और यह आपको ऑनलाइन संसाधनों का भार देगा।)
App = {
editingMode: function()
{
// Below var is no way directly accessible and act as private var
var privateVar =5;
// Below function is going to give access to private var
function getPrivateVar(){
return privateVar;
}
//Your functions - untouched
function setEditingMode(entityID) {
$('#editingMode').val('1');
$.ajax({
type: "POST",
url: "/Organisations/Manage/LockEntity/",
data: "entityID=" + entityID
});
}
function setEditingModeOff(entityID) {
if ($("#myform").valid() == true)
{
$('#editingMode').val('0');
$.ajax({
type: "POST",
url: "/Organisations/Manage/UnlockEntity/",
data: "entityID=" + entityID
});
}
}
return {
setEditingMode: setEditingMode,
setEditingModeOff: setEditingModeOff,
getPrivateVar: getPrivateVar
}
}
};
App.editingMode().setEditingMode();
console.log(App.editingMode().getPrivateVar());
AFAIK उन कार्यों को प्रभावी ढंग से निजी हैं, आप नहीं कर सकते हैं। –