SORU
11 NİSAN 2011, PAZARTESİ


Omurga.Görünüm "el" karışıklık

el bir görünüm ele alınmalıdır? Ayarlı olması gerekir, aksi takdirde yangın olayları (here) yok.

Ama zaten sayfada bir öğe olmalıdır? Benim app, bir (jQuery Şablonları) bir Fancybox içine şablon oluşturma. el Bu durumda ne olmalı?

CEVAP
22 NİSAN 2011, Cuma


Manzaralı bir el tüm olay bağlama gerçekleşir yerdir. Kullanmak zorunda değilsiniz ama eğer omurga olaylar ateş etmek istersen, el işleme işi yapmak gerekir. Manzaralı bir el DOM bir unsurdur ama önceden varolan bir elemanı olmak zorunda değildir. Eğer geçerli sayfa bir çek yaparsan oluşturulmuş olacak, ama eğer hiç bir şey görmek istiyorsan sayfaya ekleyin.

Bir örnek: Tek tek öğeleri oluşturan bir görünümü var

window.ItemView = Backbone.View.extend({
    tagName: "li", //this defaults to div if you don't declare it.
    template: _.template("<p><%= someModelKey %></p>"),
    events: {
         //this event will be attached to the model elements in
         //the el of every view inserted by AppView below
        "click": "someFunctionThatDoesSomething"
    },
    initialize: function () { 
        _.bindAll(this, "render");
        this.render();
    },
    render: function () {
        this.el.innerHTML = this.template(this.model.toJSON());
        return this;
    }
});
window.AppView = Backbone.View.extend({
    el: $("#someElementID"), //Here we actually grab a pre-existing element
    initialize: function () { 
        _.bindAll(this, "render");
        this.render(new myModel());
    },
    render: function (item) { 
        var view = new ItemView({ model: item });
        this.el.append(view.render().el);
    }
});

İlk görünüm sadece liste öğeleri oluşturur ve ikinci görüşü gerçekte sayfaya yerleştirir. Bu backbone.js sitede ToDo example ne çok benzer olduğunu düşünüyorum. İnsan el içine içeriğini işlemek için olduğunu düşünüyorum. El bir iniş yeri ya da şablonu esas alan içeriği yerleştirmek için bir kap olarak hizmet vermektedir. Omurga sonra model verileri içinde olan olayları bağlar.

Bir görünüm oluşturduğunuzda dört yoluel:, tagName:, className:, ve id: kullanarak el işleyebilirsiniz. Bunların hiçbiri eğer el bildirilen kimliği veya sınıf olmadan bir div olur. Bu noktada ayrıca sayfa ile ilgili değil. Kullanarak tagName (*örneğin 8* <li></li> bir el verecek) kullanarak, başka bir şey için etiketini değiştirebilirsiniz. El kimliği ve sınıf aynı şekilde ayarlayabilirsiniz. Hala el sayfanızın bir parçası değildir. El mal el nesnenin çok ince taneli düzenleme yapmak için izin verir. Çoğu zaman geçerli sayfa görünümünde el için aslında tek yaptığın manipülasyon bağlar el: $("someElementInThePage") kullanıyorum. Aksi halde görmek istiyorsan bütün zor işleri sen yaptın görünümü ortaya sayfayı gerekir ınsert/Ekle o sayfayı başka bir yere görünümü (muhtemelen render). Tüm görünüm işleyen konteyner olarak el düşünüyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LAHWF

    LAHWF

    5 Kasım 2009
  • PomplamooseMusic

    PomplamooseM

    28 HAZİRAN 2008
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013