SORU
20 HAZİRAN 2012, ÇARŞAMBA


Burada model veri ve davranış koymak?

Benim son proje için AngularJS ile çalışıyorum. Dokümantasyon ve öğreticiler tüm model verileri denetleyicisi kapsamı içine konur. Var denetleyicisi için kullanılabilir olması ve ilgili görünümler içinde böylece anlıyorum.

Ancak ben bu model aslında orada hayata geçirilmesi gerektiğini düşünüyor. Çok karmaşık olabilir, örneğin özel öznitelikleri olabilir. Ayrıca başka bir bağlam/app içinde yeniden kullanmak isteyebilirsiniz. Denetleyici içine her şeyi koymak tamamen MVC deseni bozuyor.

Aynı durum herhangi bir model davranışı için de geçerlidir. DCI architecture kullanım ve veri modelinden davranışları ayrı olsaydı, bu davranış tutmak için ek nesneleri tanıtmak istiyorum. Bu rol tanıtan ve sosyal çevre tarafından yapılacaktı.

Model veri ve davranışları normal javascript nesneleri ile uygulanabilir ders veya herhangi bir "" desen. sınıf Ama bunu yapmak için AngularJS yolu ne olurdu? Hizmetleri kullanarak mı?

Bu soru geliyor:

Nasıl modeller denetleyicisi, AngularJS en iyi uygulamalar aşağıdaki maddelerden temizlendikten uygulamak mı?

CEVAP
20 HAZİRAN 2012, ÇARŞAMBA


Eğer bir şey birden çok denetleyicileri tarafından kullanılabilir istiyorsan hizmetleri kullanmalısınız. Burada basit yapmacık bir örnek:

myApp.factory('ListService', function() {
  var ListService = {};
  var list = [];
  ListService.getItem = function(index) { return list[index]; }
  ListService.addItem = function(item) { list.push(item); }
  ListService.removeItem = function(item) { list.splice(list.indexOf(item), 1) }
  ListService.size = function() { return list.length; }

  return ListService;
});

function Ctrl1($scope, ListService) {
  //Can add/remove/get items from shared list
}

function Ctrl2($scope, ListService) {
  //Can add/remove/get items from shared list
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • laptopmag

    laptopmag

    25 Ocak 2008
  • PoreoticsHD

    PoreoticsHD

    22 NİSAN 2010
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007