File berikut "berfungsi" (artinya tidak ada kesalahan):
<!doctype html>
<html ng-app="modx">
<script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script>
<script>
angular.module("modx", [], function($routeProvider) {
});
</script>
</html>
tapi ini
<!doctype html>
<html ng-app="modx">
<script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script>
<script>
angular.module("modx", [], function($routeProvider, $rootScope) {
});
</script>
</html>
memberikan kesalahan:
Kesalahan: Penyedia tidak dikenal: $ rootScope dari modx
Sumber File: http://code.angularjs.org/angular-1.0.0rc7.js
Baris: 2491
WTF?
Jawaban:
Anda tidak dapat meminta misalnya selama tahap konfigurasi - Anda hanya dapat meminta penyedia.
Lihat http://docs.angularjs.org/guide/module untuk info lebih lanjut.
sumber
config
? katakan path root dalam aplikasi asp.net? Saya hanya tidak ingin menggunakan variabel global dan ingin menggunakanng-init='root:<%= myroot %>'
dan menggunakanroot
nilaimodule.config
.angular.module('config', []).constant('appRoot', '/local/js/app');
(kode ini akan dihasilkan oleh server Anda (Anda bahkan bisa membuatnya sebagai file JS, daripada memasukkan ke dalam file html). Kemudian, aplikasi Anda memuat modul ini dan karenanya memiliki akses keappRoot
.Saya menemukan "pola" berikut ini sangat berguna:
di mana, MainCtrl adalah pengontrol. Saya tidak nyaman bergantung pada nama parameter fungsi Pengendali melakukan tiruan satu-ke-satu dari contoh karena takut bahwa saya mungkin mengubah nama dan membereskan semuanya. Saya lebih suka menggunakan $ inject secara eksplisit untuk tujuan ini.
sumber
MainCtrl
seperti itu?angular.module('myMod', []).controller('theController', controllerFunction); controllerFunction.$inject = []; function controllerFunction() { }
Saya tidak menyarankan Anda untuk menggunakan sintaksis seperti yang Anda lakukan. AngularJs memungkinkan Anda untuk memiliki fungsi yang berbeda seperti yang Anda inginkan (
run
,config
,service
,factory
, dll ..), yang lebih professional.In fungsi ini Anda bahkan tidak harus menyuntikkan yang sendiri sepertiAnda bisa menggunakannya, seperti yang Anda tahu.
sumber