Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Memanggil Kaedah Meteor dalam Pembantu Templat dan Mengendalikan Respons Asynchronous?
Memanggil Kaedah Meteor dalam Pembantu Templat
Dalam MeteorJS, adalah mungkin untuk menentukan kaedah yang boleh digunakan dari dalam pembantu templat. Ini membolehkan anda melakukan tindakan sebelah pelayan dan mendapatkan semula data yang boleh dipaparkan dalam templat anda.
Untuk mencapainya, ikut langkah berikut:
Tentukan Kaedah Meteor anda:
Dalam fail berasingan, seperti lib/test.js, tentukan kaedah Meteor anda menggunakan API Meteor.methods(). Contohnya:
<code class="js">Meteor.methods({ viewTest: function (str) { return str; } });</code>
Panggil Kaedah dalam Pembantu Templat anda:
Dalam pembantu templat anda, gunakan kaedah Meteor menggunakan Meteor.call( ) fungsi. Contohnya, dalam client/myView.js:
<code class="js">Template.helloWorld.helpers({ txt: function () { var str = Meteor.call('viewTest', 'Hello World.'); return str; } });</code>
Pada mulanya, templat anda mungkin tidak memaparkan sebarang nilai jika anda menghantar hujah bukan rentetan kepada parameter str. Ini kerana kaedah Meteor berjalan secara tidak segerak dan templat dipaparkan sebelum keputusan kaedah tersedia.
Menyelesaikan Panggilan Kaedah Tak Segerak
Untuk menyelesaikan isu ini dan memastikan bahawa templat anda mengemas kini dengan respons kaedah, anda boleh menggunakan salah satu daripada teknik berikut:
Kesimpulan
Dengan menggunakan kaedah Meteor dalam pembantu templat, anda boleh melakukan tindakan sebelah pelayan dan mendapatkan data secara dinamik dalam templat anda. Dengan menggunakan sama ada pembolehubah reaktif atau pembolehubah sesi untuk mengendalikan panggilan kaedah tak segerak, anda boleh memastikan templat anda memaparkan maklumat yang dikemas kini apabila kaedah selesai.
Atas ialah kandungan terperinci Bagaimana untuk Memanggil Kaedah Meteor dalam Pembantu Templat dan Mengendalikan Respons Asynchronous?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!