T21h26 Kesilapan Semasa Guna Angularjs
بِسْـــــــــمِ ﷲِالرَّحْمَنِ الرَّحِيم. اَللَّهُمَّ صَلِّى عَلَى مُحَمَّدٍٍ، وَعَلَى آلِهِ مُحَمَّدٍٍ Controller tak tunggu function async habis kerjaSilap susunan semasa declare dan panggil functionController tak tunggu function async habis kerjaSalah satu perkara yang Tedi tak berapa nak faham pasal AngularJS ini ialah function function dalam controller tak semestinya akan beroperasi ikut turutan.
Akan ada function yang hanya dipanggil controller dan kemudian ditinggalkan tanpa menunggu ia pulangkan apa-apa. Function ini adalah function async. Kelebihannya proses load akan lebih pantas.
Jadi kesilapan yang Tedi buat adalah Tedi mengharapkan fungsi async ni untuk return value yang akan digunakan function lain. Hasilnya function lain tu menerima nilai undefined kerana value yang sebenarnya hanya tiba setelah function lain ini dipanggil.
Rujukan: AngularJS - Controller not waiting for a service return value in a conditional statement - Stack Overflow
Untuk membaiki masalah ini Tedi kena hantar function apa kepada function itu untuk dilaksanakan setelah function async itu siap. Kita hantar function ini dalam parameter, mungkin lebih terkenal sebagai callback function.
<top>
Silap susunan semasa declare dan panggil functionHari ini seharian Tedi memikirkan kenapalah function file upload menggunakan plug in jQuery blueimp/jQuery-File-Upload tak jalan-jalan di mana options done tidak triggered.
Rupa-rupanya kod Tedi telah declare $scope.options terlebih dahulu sebelum $scope.done dan $scope.fail, iaitu dua function yang akan triggered by $scope.options. Susunan yang betul ialah $scope.done dan $scope.fail kita declare sebelum $scope.options.
Menggunakan directive angularJS kita boleh gunakan directive file-upload:
<form id="uploadForm" name="uploadForm" file-upload="options" method="POST" enctype="multipart/form-data" novalidate >~20210826~
jika kiriman ini bermanfaat, tolong lawat iklan yang ada ya, terima kasih
Artikel ini hanyalah simpanan cache dari url asal penulis yang berkebarangkalian sudah terlalu lama atau sudah dibuang :
http://www.interpretzz.com/2021/08/t21h26-kesilapan-semasa-guna-angularjs.html