Saya membaca http://www.alexrothenberg.com/2013/02/11/the-magic-behind-angularjs-dependency-injection.html dan ternyata injeksi ketergantungan angularjs bermasalah jika Anda mengecilkan javascript jadi saya Saya bertanya-tanya apakah alih-alih
var MyController = function($scope, $http) {
$http.get('https://api.github.com/repos/angular/angular.js/commits')
.then(function(response) {
$scope.commits = response.data
})
}
kamu harus menggunakan
var MyController = ['$scope', '$http', function($scope, $http) {
$http.get('https://api.github.com/repos/angular/angular.js/commits')
.then(function(response) {
$scope.commits = response.data
})
}]
semua di dalam semua saya pikir cuplikan kedua untuk versi lama angularjs tapi ....
Haruskah saya selalu menggunakan cara suntik (yang kedua)?
Lebih aman menggunakan varian kedua tetapi juga memungkinkan untuk menggunakan varian pertama dengan aman dengan ngmin .
UPDATE:
Sekarang ng-annotate menjadi alat default baru untuk mengatasi masalah ini.
sumber
Ya, Anda perlu menggunakan injeksi ketergantungan eksplisit (varian kedua). Tapi karena Angular 1.3.1 Anda dapat mematikan injeksi ketergantungan implisit , sangat membantu untuk menyelesaikan masalah potensial dengan mengganti nama sekaligus (sebelum minifikasi).
Menonaktifkan DI implisit, menggunakan
strictDi
properti config:Mematikan DI implisit, menggunakan
ng-strict-di
direktif:sumber
Hanya untuk menunjukkan bahwa jika Anda menggunakan
Petani kecil
tidak perlu melakukan suka
Karena dengkuran selama minify memperhitungkan cara mengelola DI.
sumber
Seperti yang dikatakan OZ_, Gunakan ngmin untuk mengecilkan semua file js sudut, seperti directive.js service.js. Setelah itu Anda bisa menggunakan Closure compiler untuk mengoptimalkannya.
ref:
Cara mengecilkan skrip angularjs
Dibangun dengan YO
sumber
Anda mungkin ingin menggunakan
$inject
seperti yang disebutkan di sini :sumber
Gunakan Injeksi Ketergantungan Ketat untuk Mendiagnosis Masalah
Dengan Anotasi Implisit , kode akan rusak saat diminimalkan.
Dari Dokumen:
Anda dapat menambahkan
ng-strict-di
arahan pada elemen yang samang-app
untuk memilih mode DI ketat.Mode ketat memunculkan error setiap kali layanan mencoba menggunakan anotasi implisit.
Ini dapat berguna untuk menentukan masalah yang ditemukan.
Untuk informasi lebih lanjut, lihat
sumber