Ini adalah demo saya menggunakan angularjs, untuk membuat file layanan, dan menambahkan layanan ke pengontrol.
Saya memiliki dua masalah dengan demo saya:
- Salah satunya adalah ketika saya meletakkan
<script src="HomeController.js">
sebelum<script src="MyService.js">
saya mendapatkan kesalahan ini,
Kesalahan: [ng: areq] Argumen 'HomeController' bukan fungsi, tidak ditentukan
- Yang lainnya adalah ketika saya meletakkan
<script src="MyService.js">
sebelum<script src="HomeController.js">
saya mendapatkan kesalahan berikut,
Kesalahan: [$ injector: tidak aktif] Penyedia tidak dikenal: MyServiceProvider <- MyService
Sumber saya:
File Index.html
:
<!DOCTYPE html>
<html >
<head lang="en">…</head>
<body ng-app="myApp">
…
<div ng-controller="HomeController">
<div ng-repeat="item in hello">{{item.id + item.name}}</div>
</div>
<script src="Scripts/angular.js"></script>
<script src="Scripts/angular-route.js"></script>
<!-- App libs -->
<script src="app/app.js"></script>
<script src="app/services/MyService.js"></script>
<script src="app/controllers/HomeController.js"></script>
</body>
</html>
File HomeController.js
:
(function(angular){
'use strict';
var myApp = angular.module('myApp',[]);
myApp.controller('HomeController',function($scope,MyService){
$scope.hello=[];
$scope.hello = MyService.getHello();
});
})(window.angular);
File MyService.js
:
(function(angular){
'use strict';
var myApp = angular.module('myApp',[]);
myApp.service('MyService', function () {
var hello =[ {id:1,name:'cuong'},
{id:2,name:'nguyen'}];
this.getHello = function(){
return hello;
};
});
})(window.angular);
javascript
angularjs
angularjs-service
Cuong.Ho
sumber
sumber
Jawaban:
Ini membuat modul / aplikasi baru:
Saat ini mengakses modul yang sudah dibuat ( perhatikan kelalaian argumen kedua ):
Karena Anda menggunakan pendekatan pertama pada kedua skrip, pada dasarnya Anda mengganti modul yang Anda buat sebelumnya.
Pada skrip kedua yang dimuat, gunakan
var myApp = angular.module('myApp');
.sumber
Saya mengalami kesalahan ini sekali. Masalah saya adalah saya tidak menambahkan FILE_NAME_WHERE_IS_MY_FUNCTION.js
jadi file.html saya tidak pernah menemukan di mana fungsi saya
sumber
Pastikan juga bahwa pengontrol Anda ditentukan dalam tag skrip di bagian bawah index.html tepat sebelum tag penutup untuk badan.
asalkan semuanya dieja "dengan benar" (sama) di halaman spesifik.html, spesifik.js, dan app.js, ini akan menyelesaikan masalah Anda.
sumber
Terjadi pada saya beberapa kali setiap kali saya melewatkan "," antara daftar suntikan dan fungsi
sumber
app.controller('commonCtrl' ['$scope', '$filter',function($scope,$filter) { }]);
Saya juga mengalami kesalahan ini tetapi dalam kasus saya itu karena konvensi penamaan pengontrol. Saya menyatakan
controller: "QuestionController"
dalam.state
tetapi dalam definisi pengontrol saya menyatakannya sepertitapi seharusnya begitu
harapan yang membantu orang-orang yang menghadapi kesalahan ini karena kesalahan bodoh ini saya menyia-nyiakan 4 jam untuk mengidentifikasinya.
sumber
Saya mendapat kesalahan yang sama. Saya mendefinisikan skrip java seperti ini
lalu saya berubah menjadi ini
Setelah ini masalah saya teratasi.
sumber
Saya juga mengalami kesalahan yang sama dan perbaikan bagi saya adalah memasukkan modul anak saya ke dalam array modul utama.
sumber
Jika SEMUA LAIN gagal dan Anda berjalan secara lokal di tumpukan MEAN seperti saya dengan teguk ... berhenti dan sajikan lagi! Saya menarik dengar saya dengan cermat memeriksa semuanya dari semua posting Anda tidak berhasil sampai saya hanya menjalankan ulang teguk servis.
sumber
Saya memiliki masalah serupa. Perbaikannya adalah memastikan bahwa ctrollers Anda tidak hanya ditentukan dalam tag skrip di bagian bawah index.html Anda tepat sebelum tag penutup untuk body tetapi JUGA memvalidasi bahwa mereka sesuai dengan bagaimana folder Anda terstruktur.
sumber
Saya juga mengalami masalah ini dalam proyek saya. Ini akhirnya berfungsi setelah saya memasukkan
my-controller.js
ke dalamkarma.conf.js
file saya , dengan<script>
tag.Semoga ini bisa membantu. Ada cukup banyak alasan yang bisa memicu munculnya masalah ini.
sumber
Saya juga mendapat kesalahan ini.
Saya harus menambahkan pengontrol baru saya ke informasi perutean. \ src \ js \ app.js
Saya menambahkan pengontrol saya agar terlihat seperti
Bersulang!
sumber
Jelas bahwa posting sebelumnya bermanfaat, tetapi semua di atas tidak membantu dalam kasus saya. Alasannya adalah urutan pemuatan skrip yang salah . Misalnya, dalam kasus saya, kontroler editCtrl.js bergantung pada (menggunakan) ui-bootstrap-tpls.js, jadi harus dimuat terlebih dahulu. Ini menyebabkan kesalahan:
Ini benar, berhasil:
Jadi, untuk memperbaiki kesalahan, pertama - tama Anda perlu mendeklarasikan semua skrip tanpa dependensi , lalu skrip yang bergantung pada deklarasi sebelumnya.
sumber
Coba ini
sumber
Dalam kasus saya, saya kehilangan nama aplikasi Angular di file html. Misalnya, saya telah menyertakan file ini untuk memulai kode aplikasi saya. Saya telah berasumsi itu sedang dijalankan, tetapi ternyata tidak.
app.module.js
Namun, ketika saya mendeklarasikan aplikasi di html, saya memiliki ini:
index.html
Tetapi untuk mereferensikan aplikasi Angular dengan nama yang saya gunakan, saya harus menggunakan:
index.html (Tetap)
sumber
Saya mendapatkan kesalahan karena saya telah menambahkan skrip pengontrol sebelum skrip tempat saya mendefinisikan modul yang sesuai di aplikasi. Pertama tambahkan skrip
Kemudian tambahkan saja
Di file utama.
sumber
Kesalahan: ng: areq Argumen Buruk telah membuat saya beberapa kali karena saya menutup tanda kurung siku terlalu cepat. Dalam contoh BAD di bawah ini ditutup dengan tidak benar setelah '$ state' padahal seharusnya benar-benar diletakkan sebelum tanda kurung terakhir.
BURUK:
BAIK:
sumber
Iya. Seperti yang telah ditunjukkan sebelumnya, saya telah menambahkan path src ke semua file controller di index.html.
Ini memperbaiki kesalahan itu.
sumber
Saya memiliki masalah yang sama, tetapi saya lupa memasukkan file tersebut ke dalam proses minimisasi grunt / gulp.
Semoga membantu.
sumber
Dalam situasi saya, kesalahan ini muncul ketika saya tidak mendeklarasikan fungsi dalam argumen array.
Yang mengalami kesalahan :
Yang diperbaiki:
sumber
Periksa juga kesalahan ejaan .
sumber
Periksa apakah halaman HTML Anda mencakup:
angular.min
naskahapp.js
Urutan file disertakan itu penting. Itu adalah solusi saya untuk masalah ini.
Semoga ini membantu.
sumber
Hal yang sama untuk saya, koma ',' before function membantu saya dalam memperbaiki masalah - Error: ng: areq Bad Argument
sumber
File pengontrol saya di-cache sebagai kosong. Menghapus cache telah memperbaikinya untuk saya.
sumber
Saya tidak sengaja memindahkan HomeController.js saya secara langsung, di tempat yang diharapkan. Menempatkannya lagi di lokasi aslinya.
Setelah itu situs web saya mulai memuat halaman secara otomatis setiap detik, saya bahkan tidak dapat melihat kesalahannya. Jadi saya membersihkan cache browser. Itu memecahkan masalah
sumber