Pertanyaan Menggunakan AngularJS Controllers dibuat dengan angular.module (). Controller ()


Saya masih sangat baru di AngularJS dan sedang berusaha menyiapkan aplikasi pertama saya. Saya ingin dapat melakukan hal-hal berikut:

angular.module('App.controllers', [])
  .controller('home', function () {
    $scope.property = true;
  }]);

angular.module('App', ['App.controllers'])
  .config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/', {templateUrl: 'partials/home.html', controller: home});
  }]);

Menggunakan pengaturan ini kesalahan berikut ini dihasilkan:

Uncaught ReferenceError: home is not defined from App

Pertanyaan saya adalah: Bagaimana cara mendaftar pengendali menggunakan angular.module.controller() (atau $controllerProvider.register() langsung) dan menggunakan pengontrol terdaftar di tempat lain di aplikasi saya.

Motivasi saya: Saya ingin menghindari penggunaan fungsi konstruktor global sebagai pengontrol saya (seperti sebagian besar contoh penggunaan angularjs.org) atau ruang nama kompleks. Jika saya dapat mendaftar dan menggunakan pengendali sebagai nama variabel tunggal (yang tidak dimasukkan dalam lingkup global), itu akan ideal.


44
2018-06-26 16:38


asal


Jawaban:


Coba gunakan pengenal string.

routeProvider.when('/', {templateUrl: 'partials/home.html', controller: 'home'});

Ketika Anda menggunakan literal, itu mencari variabel yang disebut home, tetapi itu tidak ada dalam kasus ini.


75
2018-06-26 17:23



Jika Anda mendapatkan kontroler tidak didefinisikan kesalahan Anda harus menulis nama kontroler Anda dalam tanda kutip.

atau mendefinisikan pengontrol Anda seperti ini

function controllerName()
{
   //your code here
}

lihat ini: Acuan Tak Terduga: Pengontrol tidak didefinisikan dalam AngularJS


-1
2017-07-24 11:04