7

İstenmeyen kategorilerden oluşan bir yapıyı Backire with RequireJS ile ayarlıyorum.Omurgada Dairesel Bağımlılık/RequireJS İç İçe Aktarılan Liste

Bu yapıda, kategoriler koleksiyonu kategori modelleri içerir ve tek kategori modeli kategoriler koleksiyonu içerebilir.

Ne yazık ki bu, RequireJS'deki endişeli dairesel bağımlılıklar sorununa neden oluyor gibi görünüyor. RequireJS (http://requirejs.org/docs/api.html#circular) belgesini okudum, ancak 'a' ve 'b' kafa karıştırıcı ile açıklamaları buluyorum.

define([ 

    "jquery", 
    "underscore", 
    "backbone", 
    "collections/categories" 

    ], function($, _, Backbone, CategoriesCollection) { 

    var Category = Backbone.Model.extend({ 

     defaults: { 
      title: "Untitled" 
     }, 

     parse: function(data) { 
      this.children = new CategoriesCollection(data.children, {parse: true}); 
      return _.omit(data, "children"); 
     } 

    }); 

    return Category; 

}); 

...

define([ 

    "jquery", 
    "underscore", 
    "backbone", 
    "models/category" 

    ], function($, _, Backbone, CategoryModel) { 

    var Categories = Backbone.Collection.extend({ 
     model: CategoryModel 
    }); 

    return Categories; 

}); 

önce bu yaşadı herkes bana doğru yönde yönlendirmek yardımcı olabilir merak ediyorum: Burada

soruna neden olan benim kod . Eğer Backbone Relational gibi eklenti kullanmasına düşünmelisiniz Bunun için

cevap

11

Sadece Koleksiyon geçen başlangıçta tanımlanmamış olabilir gibi, modelde ihtiyacınız olduğunda tekrar require toplama kullanmak gerekir:

define([ 

    "jquery", 
    "underscore", 
    "backbone", 
    "collections/categories" 

    ], function($, _, Backbone, CategoriesCollection) { 

    var Category = Backbone.Model.extend({ 

     defaults: { 
      title: "Untitled" 
     }, 

     parse: function(data) { 
      if(!CategoriesCollection){ 
       CategoriesCollection = require("collections/categories"); 
      } 

      this.children = new CategoriesCollection(data.children, {parse: true}); 
      return _.omit(data, "children"); 
     } 

    }); 

    return Category; 

}); 

onlar da require ithal örnekte ama aynı zamanda olmadan çalışması gerekir ithalat.

+0

Harika çalışıyor, teşekkürler – user1031947

+0

Adam - Projelerimden birinde bir circ bağımlılık sorunu çözmeye çalışıyorum ve bu gerçekten bana yardımcı oldu - teşekkürler demet. – Stevus

+0

Toplama ikinci kez yüklendiğinden bu sorunlara neden olabilir. –

0

, Yardımlarınız için (peşin)

teşekkürler.

+0

Teşekkürler, Backbone Relational'a baktım. Tek ihtiyacım olan basit bir iç içe geçmiş liste için biraz aşırı bir his olduğunu düşünüyorum. – user1031947