मैं रीढ़ की हड्डी के लिए नया हूं, इसलिए यह संभव है कि मैं ऐसा करने में रीढ़ की हड्डी के सार का उल्लंघन कर रहा हूं। सुझावों की सराहना की जाती है:Backbone.js कई तत्वों को दृश्य संलग्न करता है
मैंने दीवार की प्रणाली बनाई है। तो एक ऐसा फॉर्म है जिसका उपयोग दीवार पर अपडेट पोस्ट करने के लिए किया जा सकता है।
प्रत्येक अपडेट पर उन पर टिप्पणी हो सकती है। मैं एक समय में 10 अपडेट दिखा रहा हूं। तो 10 टिप्पणी फॉर्म हैं।
CommentForm=Backbone.View.extend({
initialize:function(messageView){
},
events:{
"submit":"postcomment"
},
showMessage:function(data){
if(data.success)
type="success";
else
type="error";
message=data.error?data.error:"Update posted successfully";
$messageContainer=$this.prev();
console.log($this);
var html="<div class='alert alert-"+type+"'>"+message+"</div>";
$($messageContainer).html(html);
},
postcomment:function(){
$this=$(this.el);
$.post(baseUrl+"/portal/post-comment",$this.serialize(),this.showMessage,"json");
return false;
}
});
अब मैं इस प्रकार के रूप में यह करने के लिए एक उदाहरण बनाने के लिए::
commentFormView= new CommentForm({el:$(".comment-form form")});
ध्यान दें कि .comment फार्म एक div है तो मैं दृश्य उपलब्ध हैं। ऐसे कई तत्व हैं। इवेंट हैंडलर सभी टिप्पणी फॉर्मों से जुड़ा हुआ है बस ठीक है। लेकिन जब मैं $this=$(this.el);
का उपयोग करता हूं तो यह हमेशा पहले टिप्पणी फ़ॉर्म को संदर्भित करता है। मैं इसे कैसे हल करूं। $ (this.el) को टिप्पणी फ़ॉर्म के वर्तमान उदाहरण को संदर्भित करना चाहिए, जहां ईवेंट ट्रिगर किया गया था और पहले एक
जब मैं करने की कोशिश की इस 'evt' पैरामीटर srcElement शामिल नहीं किया है, लेकिन मैं के बारे में था 'evt.target' का उपयोग करने के लिए। यह पता चला है कि कुछ ब्राउज़र 'srcElement' और अन्य' originalElement' का समर्थन करते हैं, इसलिए jQuery अच्छी तरह से आंकड़े बताता है और यह आपको 'लक्ष्य' में वापस देता है। एफडब्ल्यूआईडब्ल्यू। –