2016-04-12 27 views
3

Sunucu yanıt kaydedemediğinde bir hata iletisi görüntülemek istiyorum.Hata iletisi nasıl görüntülenir? Jpeg 2.0

rota işleyicisindeki modeli:

model: function(userLoginToken) { 
    var userLoginToken= this.store.createRecord('userLoginToken'); 
    return userLoginToken; 
}, 

eylemi: şablon herhangi bir hata iletisi görüntüleyerek değil

actions: { 

    sendOTP: function(userLoginToken) { 

    var thisObject = this; 
    var model=this.currentModel; 

    this.store.findRecord('user-login-token', userLoginToken.get('mobileNumber')).then(function(response) { 
     //thisObject.get('controller').set('model', response); 
     }, 
     function(error) { 
     //thisObject.get('controller').set('model', error); 
     //alert("model======== "+model.get('errors')); 
     }); 
    }, 

.

şablonu:

{{#each model.errors.messages as |message|}} 
    <div class="errors"> 
    {{message}} 
    </div> 
{{/each}} 

Maalesef hata mesajı görünmüyor.

+0

takip etmelidir. Projenizi github'a yüklediniz mi? Belki bizimle daha fazla kod paylaşabilirsin. Biraz sunucu yanıtı yükünü paylaşabilir misiniz, hangi adaptörü kullanıyorsunuz? – Zoltan

cevap

1

Eğer arka uç yanıtından hataları yakalamak istiyorsanız catch yöntemini kullanmak zorunda: Eğer şablonda yapıyoruz otomatik olarak hataları yakalamak için

this.store.findRecord('user-login-token', userLoginToken.get('mobileNumber')) 
    .then(success => { 
    // Do whatever you need when the response success 
    }) 
    .catch(failure => { 
    // Do whatever you need when the response fails 
    }) 
}, 

, arka uç içinde yanıt gerekiyor doğru yol. Bu SO question için cevabı okumayı öneririm.

+0

Çalışmada hala çalışmıyor, hata mesajı şablonda görüntülenmiyor. Modelde hata mesajı yok. çünkü ember veri modelinde hata özelliğinde 0 uzunluk gösterilmektedir. –

+1

Size söylediğim gibi, hataları yakalamanın iki yolu vardır: biri "catch" yöntemini kullanarak ve diğeri de "template" inizdeki kodu otomatik olarak kullanarak. İkinci seçeneği seçerseniz, otomatik olarak anlamak ve hata özelliğini doldurmak için sunucudan gönderilen yükü "ember-data" için belirli bir şekilde oluşturmanız gerekir. Bize sunucunun yanıtını verirseniz ve bize hangi adaptörü kullandığınızı söylerseniz yardımcı olur. –

2

Ember, bir DS.error nesnesine bağlıdır; modelinizden hatalar almak için yanıtın gereksinimleri karşılaması gerekir. Ember'in geçerli bir hatayı tanıması için, Ember 2.x'de hata kodu 422 olmalı ve jsonapi http://jsonapi.org/format/#errors-processing