मेरा लक्ष्य आईपीथॉन के लिए एक इंटरैक्टिव वेरिएबल व्यूअर लिखना है, यानी एक को देखने के लिए अनुमति देता है, नेस्टेड डाइक/सूचियों को पेड़ के रूप में कहें, और कंसोल की तरह थोड़ा (कंसोल की तरह थोड़ा जावास्क्रिप्ट में .log)।आईपीथॉन कर्नेल जावास्क्रिप्ट द्वि-दिशात्मक संचार का न्यूनतम उदाहरण
मैंने आईपीथन में डायरेक्टव्यू उदाहरण से कम से कम कोड निकालने का प्रयास करने में काफी समय बिताया लेकिन अभी भी यह सब काम नहीं कर रहा है कि यह सब कैसे काम करता है। मेरा पायथन ठीक है लेकिन मेरा jQuery अनुभव काफी सीमित है।
तो मैं निम्नलिखित
container.show();
var widget = $('<div/>')
element.append(widget);
var output = $('<div></div>');
$(widget).append(output)
var output_area = new IPython.OutputArea(output, false);
var callbacks = { 'output': $.proxy(output_area.handle_output, output_area) };
var code = 'print 1+1'
var msg_id = IPython.notebook.kernel.execute(code, callbacks, {silent: false});
यह काम करता है जब मैं directview.ipynb लोड करने के लिए directview.js नीचे अलग करना होगा। हालांकि मैं अभी भी स्पष्ट नहीं हूं कि इसे पूरी तरह से स्टैंडअलोन कैसे बनाया जाए (यानी directview.py की आवश्यकता नहीं है, और IPython.OutputArea
के मानक handle_output
की तुलना में एक और कॉलबैक पास करें)। मुद्दों में से एक container.show()
है जो स्टैंडअलोन तरीके से कॉल होने पर विफल रहता है।
मैं खो गया हूँ कई पहलुओं पर:
- क्यों वहाँ एक
element.append(widget)
और फिर$(widget).append(output)
है?Ipython.OutputArea
बनाने की भी आवश्यकता क्यों है। क्या<div id=my_output_area>blah</div>
बनाने के लिए कोई तरीका नहीं है और फिरoutput
कॉलबैक प्रासंगिक डेटा के साथ भरें? - संपूर्ण क्या है। इसके बारे में प्रैक्टिस चीज़? मैं
output
के लिए अपना खुद का कॉलबैक बनाना चाहता हूं लेकिन जब मैं ऐसा करता हूं औरconsole.log()
कॉलबैक में दिए गए तर्क, वेundefined
या बस बेकार हैं।
मुझे खुशी है कि IPython नोटबुक के लेखकों इतनी सुंदर सामने के अंत jQuery/WebSockets का उपयोग कर बनाने एक अविश्वसनीय काम किया है, और है कि डेवलपर दस्तावेज़ है कि यह बहुत पूछ रहा है के साथ बदलाव करने की अनुमति देता है मेरे जैसे शुरुआती बनाने, लेकिन अगर कोई हाथ उधार दे सकता है तो यह बहुत अच्छा होगा!