Saya memiliki apa yang menurut saya mungkin merupakan pertanyaan yang sangat jelas, tetapi saya tidak dapat menemukan jawaban di mana pun.
Saya hanya mencoba memuat beberapa data JSON dari server saya ke klien. Sekarang, saya menggunakan JQuery untuk memuatnya dengan panggilan AJAX (kode di bawah).
<script type="text/javascript">
var global = new Array();
$.ajax({
url: "/json",
success: function(reports){
global = reports;
return global;
}
});
</script>
Ini terletak di file html. Sejauh ini berhasil, tetapi masalahnya adalah saya ingin menggunakan AngularJS. Sekarang, sementara Angular BISA menggunakan variabel, saya tidak dapat memuat semuanya ke dalam variabel sehingga saya dapat menggunakan a untuk setiap loop. Ini sepertinya terkait dengan "$ Scope", yang biasanya terletak di file .js.
Masalahnya adalah saya tidak dapat memuat kode dari halaman lain ke dalam file .js. Setiap contoh Angular hanya menampilkan hal-hal seperti ini:
function TodoCtrl($scope) {
$scope.todos = [
{text:'learn angular', done:true},
{text:'build an angular app', done:false}];
Jadi, ini berguna, jika IA) Ingin mengetik semua ini dengan tangan, DAN B) Jika saya tahu sebelumnya apa semua data saya ...
Saya tidak tahu sebelumnya (datanya dinamis) dan saya tidak ingin mengetiknya.
Jadi, ketika saya mencoba mengubah panggilan AJAX ke Angular menggunakan $ Resource, sepertinya tidak berhasil. Mungkin saya tidak bisa mengetahuinya, tetapi ini adalah permintaan GET yang relatif sederhana untuk data JSON.
tl: dr Saya tidak bisa mendapatkan panggilan AJAX untuk bekerja untuk memuat data eksternal ke dalam model sudut.
sumber
Jawaban:
Seperti yang disebutkan Kris, Anda dapat menggunakan
$resource
layanan untuk berinteraksi dengan server, tetapi saya mendapat kesan bahwa Anda memulai perjalanan Anda dengan Angular - Saya ada di sana minggu lalu - jadi saya sarankan untuk mulai bereksperimen langsung dengan$http
layanan tersebut. Dalam hal ini Anda dapat memanggilget
metodenya.Jika Anda memiliki JSON berikut
Anda dapat memuatnya seperti ini
The
get
Metode mengembalikan janji objek yang argumen pertama adalah sukses callback dan yang kedua merupakan kesalahan callback.Saat Anda menambahkan
$http
sebagai parameter fungsi, Angular melakukannya secara ajaib dan menyuntikkan$http
sumber daya ke pengontrol Anda.Saya telah memberikan beberapa contoh di sini
sumber
code
$ http.get ('/ json'). success (function (response) {$ scope.reports = response; getData ();code
yang menarik bagi saya, adalah objek promise ... Saya benar-benar ingin mempelajari lebih lanjut tentang itu. Saya suka idenya. Masalah lain yang saya alami pada dasarnya adalah menjalankan loop pada permintaan ajax sehingga saya dapat terus-menerus "secara otomatis" menyegarkan halaman. $ timeout tidak berfungsi untuk saya.config
,data
,headers
danstatus
. Nilai dalamdata
properti adalah yang Anda inginkan.$scope.todos = res;
atau$scope.todos = res.data;
- perbedaannya adalah apakah Anda berada di a.then(response)
atau di.success(result)
The.success
diberikanresponse.data
sedangkan.then
diberikan keseluruhanresponse
.Berikut adalah contoh sederhana tentang cara memuat data JSON ke dalam model Angular.
Saya memiliki layanan web JSON 'GET' yang mengembalikan daftar detail Pelanggan, dari salinan online database Microsoft SQL Server Northwind .
http://www.iNorthwind.com/Service1.svc/getAllCustomers
Ini mengembalikan beberapa data JSON yang terlihat seperti ini:
..dan saya ingin mengisi daftar drop-down dengan data ini, agar terlihat seperti ini ...
Saya ingin teks setiap item berasal dari kolom "CompanyName", dan ID berasal dari kolom "ID Pelanggan".
Bagaimana saya melakukannya?
Pengontrol Angular saya akan terlihat seperti ini:
... yang mengisi variabel "listOfCustomers" dengan kumpulan data JSON ini.
Kemudian, di halaman HTML saya, saya akan menggunakan ini:
Dan itu dia. Kami sekarang dapat melihat daftar data JSON kami di halaman web, siap digunakan.
Kuncinya ada di tag "ng-options":
Ini sintaks yang aneh untuk dipahami!
Saat pengguna memilih item dalam daftar ini, variabel "$ scope.selectedCustomer" akan disetel ke ID (bidang ID Pelanggan) dari rekaman Pelanggan itu.
Skrip lengkap untuk contoh ini dapat ditemukan di sini:
Data JSON dengan Angular
Mike
sumber
Saya menggunakan kode berikut, ditemukan di suatu tempat di internet meskipun tidak ingat sumbernya.
sumber