Angular.js: Function.prototype.bind.apply(...) bukan konstruktor

Dibuat pada 22 Jun 2016  ·  2Komentar  ·  Sumber: angular/angular.js

Saya mencoba belajar angular-tdd

dengan versi ini pengujian saya berfungsi dengan baik
versi ketergantungan
sudut: 1.4.8
sudut-mengolok-olok: 1.4.8
simpul: v4.4.5
karma-cli: 0.13.22

tetapi ketika saya menggunakan
versi
"sudut": "^1.5.7"
"angular-mocks": "^1.5.7"

itu melempar kesalahan

karma start karma.conf.js

22 06 2016 16:53:04.002:WARN [karma]: No captured browser, open http://localhost:9876/
22 06 2016 16:53:04.012:INFO [karma]: Karma v0.13.22 server started at http://localhost:9876/
22 06 2016 16:53:04.018:INFO [launcher]: Starting browser Chrome
22 06 2016 16:53:05.959:INFO [Chrome 51.0.2704 (Linux 0.0.0)]: Connected on socket /#Vfy_Fpt6BZ2INRyEAAAA with id 36097936
Chrome 51.0.2704 (Linux 0.0.0) calculator sum 1 + 1 should equal 2 FAILED
    TypeError: Function.prototype.bind.apply(...) is not a constructor
        at Object.instantiate (/home/malanay/workspace/AngularJs-BDD-101/node_modules/angular/angular.min.js:41:477)
        at /home/kiro112/workspace/AngularJs-BDD-101/node_modules/angular/angular.min.js:90:3
        at /home/kiro112/workspace/AngularJs-BDD-101/node_modules/angular-mocks/angular-mocks.js:2214:12
        at Object.it (/home/kiro112/workspace/AngularJs-BDD-101/tests/calculator.controller.test.js:17:21)
Chrome 51.0.2704 (Linux 0.0.0): Executed 1 of 1 (1 FAILED) (0 secs / 0.027 Chrome 51.0.2704 (Linux 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.037 secs / 0.027 secs)
invalid

Komentar yang paling membantu

Masalahnya adalah menggunakan sintaks panah gemuk untuk mendefinisikan konstruktor fungsi untuk kelas pengontrol. Dengan asumsi fungsi Anda diteruskan sebagai argumen kedua ke module.controller adalah Foo , Angular akan memanggil new Foo(...) di atasnya, yang ilegal dengan sintaks panah gemuk di ES6.

Semua 2 komentar

Masalahnya adalah menggunakan sintaks panah gemuk untuk mendefinisikan konstruktor fungsi untuk kelas pengontrol. Dengan asumsi fungsi Anda diteruskan sebagai argumen kedua ke module.controller adalah Foo , Angular akan memanggil new Foo(...) di atasnya, yang ilegal dengan sintaks panah gemuk di ES6.

@wesleycho , benar. Pengontrol harus dapat digunakan (yaitu dipanggil dengan new ), jadi hal-hal seperti fungsi panah ( () => {...} ) dan metode objek steno ( {someMethod() {...}} ) tidak cocok untuk pengontrol.

Lihat https://github.com/angular/angular.js/issues/14766#issuecomment -226005516 untuk detail lebih lanjut.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat