Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengelakkan Isu Rendering Semasa Memanggil Kaedah Meteor dalam Pembantu Templat?

Bagaimana untuk Mengelakkan Isu Rendering Semasa Memanggil Kaedah Meteor dalam Pembantu Templat?

Susan Sarandon
Lepaskan: 2024-11-03 17:47:03
asal
371 orang telah melayarinya

How to Avoid Rendering Issues When Calling Meteor Methods in Template Helpers?

Menggunakan Kaedah Meteor dalam Pembantu Templat

Senario biasa dalam pembangunan Meteor ialah keperluan untuk memanggil kaedah bahagian pelayan dari dalam pihak pelanggan pembantu templat. Walaupun mengimport kaedah secara terus ke dalam pembantu adalah mudah, pendekatan ini boleh membawa kepada isu pemaparan yang tidak dijangka.

Mari kita pertimbangkan contoh yang diberikan dalam soalan:

<code class="js">// lib/test.js
Meteor.methods({
  viewTest: function (str) {
    return str;
  }
});

// client/myView.js
Template.helloWorld.helpers({
  txt: function () {
    var str = Meteor.call('viewTest', 'Hello World.');
    return str;
  }
});</code>
Salin selepas log masuk

Walau bagaimanapun, apabila memaparkan templat, anda mungkin perasan bahawa templat tidak menerima sebarang nilai daripada kaedah viewTest. Ini timbul kerana Meteor cuba untuk memaparkan templat sebelum melengkapkan pelaksanaan kaedah.

Penyelesaian Dipertingkat

Untuk mengatasi cabaran ini, Meteor menyediakan pendekatan alternatif menggunakan pembolehubah reaktif:

<code class="js">// client/myView.js
Template.helloWorld.helpers({
  txt: function () {
    return Template.instance().myAsyncValue.get();
  }
});

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);
  });
};</code>
Salin selepas log masuk

Dalam pendekatan ini, pembolehubah reaktif myAsyncValue dicipta dalam cangkuk kitaran hayat yang dibuat contoh templat. Kaedah Meteor getAsyncValue kemudiannya digunakan, dan setelah selesai, keputusannya ditetapkan pada pembolehubah reaktif.

Dengan menggunakan pembolehubah reaktif, sebarang perubahan pada nilainya disebarkan secara automatik kepada pembantu yang sepadan, memastikan templat adalah dikemas kini secara reaktif apabila kaedah selesai.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Isu Rendering Semasa Memanggil Kaedah Meteor dalam Pembantu Templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan