2016-09-14 11 views
2

유성 애플리케이션에서 항목 (목록)을 삭제할 때마다 콘솔에 오류가 있습니다. 콘솔의 오류는 다음과 같습니다 여기 유성 : 미수 오류 : 첨부해야 함 (기능 삭제)

domrange.js:337 Uncaught Error: Must be attached

함수이며,이 오류 어디에서 온 나는 이해할 수 없다 : 모든이 작동

Meteor.methods({ 
    'lists.remove'(listId) { 
     check(listId, String); 

     const list = Lists.findOne(listId); 
     if (list.owner !== this.userId) { 
      throw new Meteor.Error('not-authorized'); 
     } 
     Tasks.remove({"listId": listId}); 
     Lists.remove(listId); 
    }, 

Lists.js 응용 프로그램에서 제대로 작동하지만이 오류가 어디서 발생했는지 알고 있습니까?

시 : 그것은

감사

내가 Meteor.isServer 이상을 추가 해결책을 찾을 것
+0

유성과 관련된 알려진 문제 - https://github.com/meteor/meteor/issues/2981 – Craicerjack

+0

감사합니다. @Craicerjack, 전에이 글을 읽었습니다. 주제가 2015에서 나온 것이므로 생각했습니다. 어쩌면 새로운 해결책이었을 것입니다. 솔루션이 아닌 것처럼 보일뿐입니다. 일부 코드는 Meteor.defer() 솔루션을 코드와 함께 사용하는 방법을 모르겠습니다. – guillaumek

+0

두 가지 버전의 메서드를 만들 수 있습니다. 하나는 클라이언트 용이고 다른 하나는 서버용 메서드입니다 (또는 클라이언트에서 메서드를 전혀 구현하지 않음). 두 가지 다른 메소드를 만들거나'this.isSimulation'을 사용하여 클라이언트/서버에서 코드의 일부만을 실행할 수 있습니다. – MasterAM

답변

0

를 도울 수 있다면 내가 블레이즈를 사용하고있는 경우 (@MasterAM 용액) (this.isSimulation!)

'lists.remove'(listId) { 
     check(listId, String); 

     const list = Lists.findOne(listId); 
     if (list.owner !== this.userId) { 
      throw new Meteor.Error('not-authorized'); 
     } 
     if (!this.isSimulation) { 
      Tasks.remove({"listId": listId}); 
      Lists.remove(listId); 
     } 
    }, 

@MasterAM의 도움으로 작업 코드를 편집했습니다. 이제 작동 중입니다! 더 이상 콘솔 오류가 없습니다.

+0

'this.isSimulation'은 (스텁의) 클라이언트에서'true'로 평가되므로 스텁에서이 문제를 방지하려면'if (! this.isSimulation)'을 사용해야합니다. – MasterAM

+0

오, 알았어! 설명 주셔서 대단히 감사합니다 @MasterAM :) – guillaumek