loginService.islogged()
Fungsi di atas mengembalikan string seperti "gagal". Namun, ketika saya mencoba menjalankan lalu berfungsi di atasnya, itu akan mengembalikan kesalahan
TypeError: Cannot read property 'then' of undefined
dan kursor diindikasikan tepat setelah connected
dan sebelum .then
.
Di bawah ini adalah fungsi lengkapnya:
var connected=loginService.islogged();
alert(connected);
connected.then(function(msg){
alert("connected value is "+connected);
alert("msg.data value is "+msg.data);
if(!msg.data.account_session || loginService.islogged()=="failed")
$location.path('/login');
});
MEMPERBARUI
Ini islogged()
fungsinya
islogged:function(){
var cUid=sessionService.get('uid');
alert("in loginServce, cuid is "+cUid);
var $checkSessionServer=$http.post('data/check_session.php?cUid='+cUid);
$checkSessionServer.then(function(){
alert("session check returned!");
console.log("checkSessionServer is "+$checkSessionServer);
return $checkSessionServer;
});
}
Saya yakin bahwa ini $checkSessionServer
akan menghasilkan string "gagal". Tidak ada lagi.
javascript
angularjs
promise
Ezeewei
sumber
sumber
promise
sini.msg
- yang seharusnya mengembalikan janji.undefined
, makaislogged()
sebenarnya bukanreturn
nilai. Definisi dariislogged()
kemungkinan akan menjadi sumber masalah Anda.Jawaban:
Anda harus mengembalikan janji Anda ke fungsi panggilan.
sumber
return $http.post
. Segera setelah saya menambahkan awalanreturn
ke$http
, itu mulai bekerja dengan benar.return
juga.TypeError: Tidak dapat membaca properti 'then' dari tidak terdefinisi saat memanggil layanan Django menggunakan AngularJS.
Jika Anda memanggil layanan Python, kodenya akan terlihat seperti di bawah ini:
Kami menggunakan MongoDB sebagai database (saya tahu itu tidak masalah. Tetapi jika seseorang mencari dengan MongoDB + Python (Django) + AngularJS, hasilnya akan datang.
sumber