>  기사  >  웹 프론트엔드  >  템플릿 도우미 내에서 Meteor 메서드에 액세스하고 조기 렌더링을 방지하는 방법은 무엇입니까?

템플릿 도우미 내에서 Meteor 메서드에 액세스하고 조기 렌더링을 방지하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-29 12:44:29840검색

How to Access Meteor Methods Within Template Helpers and Avoid Premature Rendering?

템플릿의 조기 렌더링 시도 극복: 도우미의 메서드 액세스

문제:
템플릿 내에서 Meteor 메서드에 어떻게 액세스할 수 있나요? helper?

해결책:

서버측 메소드에 액세스하려는 템플릿 도우미가 메소드가 실행되기 전에 템플릿이 렌더링되기 때문에 실패할 수 있는 문제에 직면할 수 있습니다. 한정된. 이 문제를 해결하려면 다음 단계를 구현하세요.

  1. 템플릿에서 생성된 콜백을 활용하여 메서드의 결과를 저장할 반응형 변수를 정의합니다.
  2. 메서드를 호출하고 해당 콜백을 처리합니다. 생성된 콜백 내에서.
  3. 콜백 시 메서드의 반환 값을 반응형 변수에 설정합니다.
  4. 템플릿 도우미에서 반응형 변수의 값에 접근합니다. 템플릿 인스턴스에 연결된 이 변수는 메서드가 결과를 반환할 때 도우미를 다시 렌더링하도록 트리거합니다.

업데이트된 코드:

<code class="javascript">// client/myView.js
Template.helloWorld.created = function () {
  var self = this;
  self.myAsyncValue = new ReactiveVar("Waiting for response from server...");
  Meteor.call("getAsyncValue", function (err, asyncValue) {
    if (err) console.log(err);
    else self.myAsyncValue.set(asyncValue);
  });
};

Template.helloWorld.helpers({
  txt: function () {
    return Template.instance().myAsyncValue.get();
  },
});</code>

추가 참고 사항: 이 솔루션이 작동하려면 $ meteor addactive-var를 사용하여 반응성 변수 패키지를 추가해야 합니다.

위 내용은 템플릿 도우미 내에서 Meteor 메서드에 액세스하고 조기 렌더링을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.