de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Ken Smith
Ken Smith
Question

"Tertangkap Error: [$injector:bersahaj]" dengan sudut setelah penyebaran

Aku punya cukup sederhana Sudut aplikasi yang berjalan baik-baik saja pada saya dev mesin, tapi gagal dengan pesan kesalahan ini (di konsol browser) setelah saya menyebarkan ini:

Tertangkap Error: [$injector:bersahaj] http://errors.angularjs.org/undefined/$injector/unpr?p0=tProvider%20%3C-%20t%20%3C-%20%24http%20%3C-%20%24compile

Tidak ada pesan lain selain itu. Hal itu terjadi saat halaman pertama.

I'm berjalan ASP.NET MVC5, Sudut 1.2RC3, dan mendorong untuk Azure melalui git.

Googling belum't muncul sesuatu yang menarik.

Ada saran?

EDIT:

I'm menggunakan Ketangkasan, dan mendefinisikan saya ketergantungan dengan $inject variabel, misalnya:

export class DashboardCtrl {

    public static $inject = [
        '$scope',
        '$location',
        'dashboardStorage'
    ];

    constructor(
        private $scope: IDashboardScope,
        private $location: ng.ILocationService,
        private storage: IDashboardStorage) {
    }
}

Saya percaya bahwa harus (atau dimaksudkan untuk) mendapatkan sekitar variabel lokal nama masalah-masalah yang timbul selama minification dan yang dapat menyebabkan kesalahan ini.

Yang mengatakan, itu jelas memiliki sesuatu untuk dilakukan dengan minification proses, seperti ketika saya set BundleTable.EnableOptimizations = true on my dev mesin, saya dapat mereproduksi itu.

96 2013-10-30T01:00:05+00:00 7
Ken Smith
Ken Smith
Pertanyaan edit 19 Maret 2015 в 7:02
Pemrograman
angularjs
Solution / Answer
Stuart Nelson
Stuart Nelson
30 Oktober 2013 в 1:18
2013-10-30T01:18:25+00:00
Lebih
Sumber
Sunting
#22660688

Jika anda mengikuti link anda, itu memberitahu anda bahwa kesalahan hasil dari $injector tidak mampu mengatasi ketergantungan. Ini adalah masalah umum dengan sudut ketika javascript mendapat minified/uglified/apa pun yang anda're lakukan untuk produksi.

Masalah adalah ketika anda memiliki misalnya controller;

angular.module("MyApp").controller("MyCtrl", function($scope, $q) {
  // your code
})

Yang minification perubahan $lingkup dan $t menjadi variabel acak yang doesn't memberitahu sudut apa yang harus inject. Solusinya adalah untuk menyatakan ketergantungan seperti ini:

angular.module("MyApp")
  .controller("MyCtrl", ["$scope", "$q", function($scope, $q) {
  // your code
}])

Yang harus memperbaiki masalah anda.

Hanya untuk re-iterate, segala sesuatu yang saya've mengatakan pada link pesan kesalahan menyediakan untuk anda.

 Kriem
Kriem
Jawaban edit 3 Juni 2014 в 1:25
161
0
 Matt
Matt
20 Maret 2014 в 2:00
2014-03-20T14:00:40+00:00
Lebih
Sumber
Sunting
#22660689

Berlari ke dalam masalah yang sama diriku sendiri, tapi saya controller definisi yang tampak sedikit berbeda dari yang di atas. Untuk pengendali didefinisikan seperti ini:

function MyController($scope, $http) {
    // ...
}

Hanya menambahkan satu baris setelah deklarasi yang menunjukkan benda-benda untuk menyuntikkan ketika controller instantiated:

function MyController($scope, $http) {
    // ...
}
MyController.$inject = ['$scope', '$http'];

Hal ini membuat minification-aman.

13
0
Sandeep K
Sandeep K
6 Mei 2015 в 9:08
2015-05-06T09:08:32+00:00
Lebih
Sumber
Sunting
#22660691

Masalah ini terjadi ketika controller atau direktif yang tidak ditentukan sebagai array dari ketergantungan dan fungsi. Misalnya

angular.module("appName").directive('directiveName', function () {
    return {
        restrict: 'AE',
        templateUrl: 'calender.html',
        controller: function ($scope) {
            $scope.selectThisOption = function () {
                // some code
            };
        }
    };
});

Ketika minified Yang '$scope' diteruskan ke controller fungsi diganti dengan satu huruf nama variabel . Ini akan membuat sudut mengerti dari ketergantungan . Untuk menghindari hal ini lulus ketergantungan nama bersama dengan fungsi sebagai array.

angular.module("appName").directive('directiveName', function () {
    return {
        restrict: 'AE',
        templateUrl: 'calender.html'
        controller: ['$scope', function ($scope) {
            $scope.selectThisOption = function () {
                // some code
            };
        }]
    };
});
11
0
 Schnapz
Schnapz
28 Mei 2014 в 2:06
2014-05-28T14:06:33+00:00
Lebih
Sumber
Sunting
#22660690

Jika anda memiliki file terpisah untuk sudut app\resources\arahan dan hal-hal lain maka anda hanya dapat menonaktifkan minification dari sudut bundel aplikasi seperti ini (menggunakan Bundel baru() bukan ScriptBundle() dalam bundel anda config):

bundles.Add(
new Bundle("~/bundles/angular/SomeBundleName").Include(
               "~/Content/js/angular/Pages/Web/MainPage/angularApi.js",
               "~/Content/js/angular/Pages/Web/MainPage/angularApp.js",
               "~/Content/js/angular/Pages/Web/MainPage/angularCtrl.js"));

Dan sudut aplikasi akan muncul dalam bundel dimodifikasi.

10
0
Omkar Dixit
Omkar Dixit
22 Februari 2017 в 11:53
2017-02-22T11:53:32+00:00
Lebih
Sumber
Sunting
#22660692

Tambahkan $http, $ruang lingkup pelayanan di controller fucntion, kadang-kadang jika mereka hilang kesalahan ini terjadi.

0
0
nirmal kumar
nirmal kumar
25 Agustus 2017 в 12:42
2017-08-25T12:42:43+00:00
Lebih
Sumber
Sunting
#22660693

Jika anda memiliki file terpisah untuk sudut app\resources\arahan dan hal-hal lain maka anda hanya dapat menonaktifkan minification dari sudut bundel aplikasi seperti ini (menggunakan Bundel baru() bukan ScriptBundle() dalam bundel anda config):

0
0
Eugenio Miró
Eugenio Miró
26 Januari 2018 в 11:39
2018-01-26T23:39:22+00:00
Lebih
Sumber
Sunting
#22660694

Aku punya masalah yang sama tapi masalah yang berbeda, saya mencoba untuk membuat layanan dan pass $ruang lingkup untuk itu sebagai parameter. Yang's cara lain untuk mendapatkan error ini sebagai dokumentasi dari link yang mengatakan:

Mencoba untuk menyuntikkan lingkup objek menjadi sesuatu yang's tidak kontroler atau direktif, misalnya layanan, juga akan membuang aplikasi yang tidak Diketahui penyedia: $scopeProvider <- $ruang lingkup kesalahan. Ini mungkin terjadi jika seseorang keliru register controller sebagai layanan, ex.:

angular.module('myModule', [])
       .service('MyController', ['$scope', function($scope) {
        // This controller throws an unknown provider error because
        // a scope object cannot be injected into a service.
}]);
0
0
Related communities 1
Angular Indonesia
Angular Indonesia
3 519 pengguna
Framework web development aplikasi web dan mobile https://angular.io/ Facebook Group https://www.facebook.com/groups/462764390497214/ Github Repo Angular ID https://github.com/angular-indonesia Medium Angular Indonesia https://medium.com/angularid
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 1 hari yang lalu
2
Akshit Mehta
Terdaftar 4 hari yang lalu
3
me you
Terdaftar 1 minggu yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi