2012-06-27 18 views
6

ExerciseRowView'u genişleten bir WorkoutExerciseRowView var. Oluşturma işlevleri, WorkoutExerciseRowView'un ExerciseRowView renderine birkaç parametre eklemesi dışında son derece benzerdir. WorkoutExerciseRowView 'nun render işlevi içinde ExerciseRowView' nun render işlevini nasıl arayabilirim?Omurga: Genişletilmiş görünümün geçersiz kılınmış render() işlevini çağırın

var WorkoutExerciseRowView = ExerciseRowView.extend({  
    render : function() { 
     //return this.constructor.render({ // doesn't work 
     return this.render({ // doesn't work 
      workoutExercise : this.model, 
      exercise : this.model.get("exercise"), 
      workoutSection : this.model.get("section"), 
      isEditable : true, 
      number : this.number, 
      WorkoutExercise : WorkoutExercise, 
      WorkoutSection : WorkoutSection 
     }); 
    } 
}); 

Teşekkürler! Burada omurga belgelerine itibaren

cevap

14
var WorkoutExerciseRowView = ExerciseRowView.extend({  
    render : function() { 
     return ExerciseRowView.prototype.render.call(this,{ 
      workoutExercise : this.model, 
      exercise : this.model.get("exercise"), 
      workoutSection : this.model.get("section"), 
      isEditable : true, 
      number : this.number, 
      WorkoutExercise : WorkoutExercise, 
      WorkoutSection : WorkoutSection 
     }); 
    } 
}); 

: süper bir kenara http://backbonejs.org/#Model-extend

Kısaca: JavaScript süper aramak için basit bir yol sağlamaz - prototip zincirinin daha tanımlı aynı adı taşıyan işlevi. Eğer seti gibi bir çekirdek işlevini geçersiz veya kaydetmek ve üst nesnenin uygulanmasını çağırmak için isterseniz, açıkça, bu satırlar boyunca, diyoruz gerekecek:

Backbone.Model.prototype.set.call(this, attributes, options);

7

Gitmelisiniz Bu (şimdiki modele) olarak ayarlanmış kapsam

1
ile ExerciseRowView dan işlevini hale arayacak

ExerciseRowView.prototype.render.call(this) 

Bu kullanabilecektir

+1

Github üzerindeki yazılara göre, __super__ kullanılmamalıdır. –

İlgili konular