SORU
25 EKİM 2012, PERŞEMBE


İstemci deseni MVC AngularJS?

Şimdiye kadar çoğunlukla*0, *, JQuery **1 teknoloji yığını bina web uygulamaları için kullanıyordum. Bu noktada, bir yığın sunucu tarafı MVC desen kullanır bahsetti. Web tarayıcıların ana rolü yanıt döngüsünün istek/(kullanıcı doğrulama) sınırlı kaldı. Veri alma, iş mantığı, kablolama ve doğrulama Özellikle sunucu tarafında sorumlulukları vardı.

Birkaç soru ile ilgiliAngularJSaşağıdaki esinlendi bu çerçeve okudum alıntılar:


AngularJS tutorial:

Açısal uygulamalar için, Model-Görünüm-Denetleyici kullanımını teşvik ediyoruz (MVC) desen kodu ayrıştır ve endişeleri ayırmak için tasarım.

Wikipedia Model–view–controller:

Model–View–Denetleyici (MVC) ayıran bir mimari. kullanıcı etkileşimi, bilgi temsili ile . Model uygulama verilerini içeririş kuralları, ve denetleyici giriş, komutlar dönüştürerek aracılık model veya Görünüm


AngularJSkullanan istemci tarafı MVC desen. Bir şekilde daha sonra doğrulama mantığı istemci tarafı için de dahil etmek için başka seçenek yok sanırım?

Sağlam bir AngularJS uygulama yazmak için en iyi yolu ne olurdu? İstemci tarafı ve sunucu tarafında MC (model, denetleyicisi) bir çeşit MVC?

MODELİ ve DENETLEYİCİ bir şekilde çoğaltılamaz (istemci/sunucu) anlamına gelir?

Soruma nedense garip olduğunu biliyorum, ama nedeni, geleneksel sunucu taraflı MVC deseni bir şekilde acustomed olduğumu düşünüyorum. Zaten aynı geçiş yapmış olan birileri vardır eminim.

CEVAP
25 EKİM 2012, PERŞEMBE


Hiç garip bir soru - java geliştiricileri bir sürü Açısal satmaya çalışıyorum ve bu onlar sorun değil. Öğrenme (hala, btw öğreniyorum) ben bunu kendime sordum

Eğer "geleneksel" olarak nitelendirdi ve Açısal-ize senin gibi bir java Web uygulaması, ilk sunucu almak ve Dinlendirici bir API var. alırsan JSP, vb kaldırın. Bu aslında zor kısmı, IMO, Açısal bir uygulamayı SONUNA doğru API alma yazma. Mantık sunucusuna girmek için gerekli olan ne karar benim için anahtar oldubir ön uç olacak saf bir apı olarak düşünüyorum ve şu an için unutarak.

Bu soru gerçekten çok yardımcı oldu bana - eğer birisi çalışır kurtarmak için verilen bir kaynak ve bu kaynak yok, geçerli bir veri yok önünde sonunda söyle onlara - onlar isabet API doğrudan API ihtiyaçlarına karşı çıkıyor. Yani, arka planda derin doğrulama sorumludur. Bu iş mantığı için de geçerlidir. Birinin kullandığını varsayalımsadeceAPI ve sunucu yapmak için ihtiyacı olan şey belli olacak.

Sunucu da (muhtemelen) json biçimi (Spring MVC kullanıyorum Jackson) veri satıcılık gerekiyor, Açısal, ve veritabanı ile iletişim için bu model teşhir sorumlu.

Bu MVC sonra Açısal tarafında ne var?

  • ModelÖtekilerin gelen veri API. Eğer API JSON satış ise, o zaman bu nesneler zaten 1 javascript nesneleri sınıf olacaktır.
  • Görünüm: HTML ve DOM işlemek için gereken zaman yönergeleri
  • Denetleyicisi: (ve denetleyicileri dışarı çarpanlarına olduğunuz özel servisleri..)
    • REST API ve kapsam $üzerinde Görüntülemek için gerekli olanı koyar sorgular
    • Yönergeler için geri çağırır sunucuya geri gerektirecek olaylara yanıt vermesini sağlar.
    • Doğrulama: bir Direktif için bir geri arama yoluyla genellikle.Büyük olasılıkla zaten sunucu koyduk doğrulama bazıları örtüşüyorkullanıcı bir sunucu için her şeyi doğrulamak için beklemek istemiyorum - müşteri bilmeli amabir şeykullanıcı anında geri bildirim vermek için doğrulama hakkında.
    • İş mantığı: doğrulama aynı hikaye.

Ama neden istemci mantığı, çoğaltma ve server? Çoğunlukla bir uygulama yazıyorsun değil çünkü, iki bağımsız şeyler yazıyorsun:

  1. güçlü olmak ve bir ön uç olmadan kullanılabilir gereken bir REST API
  2. bir kullanıcıya anında geri bildirim vermek ve mutlaka bir sunucu için beklemek gerekiyor bir GUI.

Bu yüzden, kısa cevap - SONUNA doğru bir UI olacak, ve Açısal gider ne de unutarak API almak çok daha net olacak.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BeginnersTech

    BeginnersTec

    8 NİSAN 2011
  • EminemVEVO

    EminemVEVO

    12 Mayıs 2009
  • Maya Learning Channel

    Maya Learnin

    23 HAZİRAN 2010