2014-07-15 3 views
0

내가 "재정의"로그인 노선의 로그인 동작을 검증하기 위해엠버는 - 어떻게 내가 <a href="https://github.com/dockyard/ember-validations" rel="nofollow">ember-validations</a>과 함께 엠버 - 단순 인증을 사용하고

를 내 사용자 로그인 자격 증명의 유효성을 검사하기 위해 내 컨트롤러에서 경로의 조치를 호출 할 수 있습니다 컨트롤러에서.

문제는 그 유효성 지금 싶어 거품까지 작업 후; 그러나 validate가 약속을 반환하기 때문에 나는 단순히 true를 반환 할 수는 없습니다.

나는 this.get('target').send('login') 내 길을 호출하려고하지만 분명히 작동하지 않습니다. this.send('login')을 시도했지만 컨트롤러가 반복적으로 호출 할 때 무한 루프가 발생합니다.

답변

0

그냥

actions: { 
    validate: function() { 

     var that = this; 
     return this.validate().then(function() { 
      that.send('login'); 
     }, function() { 
      // report errors in an array 
      var errors = that.get('errors'); 
      var fullErrors = []; 
      Object.keys(errors).forEach(function(val) { 
       if(errors[val] instanceof Array) 
        errors[val].forEach(function(msg) { 
         fullErrors.push([val, msg].join(" ")); 
        }); 
      }); 
      that.set('fullErrors',fullErrors); 
     }); 
    }, 
    loginFailed: function(xhr) { 
     this.set('errorMessage', xhr.responseText); 
    } 
} 
가 로그인 컨트롤러에서 다른 작업 이름을 사용하고 전화