Saya telah memutakhirkan aplikasi saya ke AngularJS 1.2.1 dan mengalami masalah dengan kode yang berfungsi sebelumnya, yang tidak dapat saya selesaikan.
Saya memiliki halaman tempat pengguna membuat konten dari daftar konten yang telah ditentukan sebelumnya, yang masing-masing merupakan arahan AngularJS terpisah. Saya memiliki layanan yang menyimpan array item yang dikonfigurasi dan menghubungkannya ke perintah ng-repeat. Yang saya lakukan saat pengguna memilih untuk menambahkan item baru adalah memasukkannya ke dalam array dan menyerahkannya kepada Angular untuk memperbarui UI. HTML saya mirip dengan ini.
<div data-ng-repeat="item in configuration">
<directive-a data-ng-if="item.obj === 'directive-a'></directive-a>
<directive-b data-ng-if="item.obj === 'directive-b'></directive-b>
<directive-c data-ng-if="item.obj === 'directive-c'></directive-c>
<directive-d data-ng-if="item.obj === 'directive-d'></directive-d>
</div>
Semua arahan di sini mewarisi cakupan induk, dan sesederhana mungkin.
angular.module("App").directive("directiveA", function () {
return {
restrict: "E",
replace: true,
templateUrl: "partials/DriectiveA.html"
};
});
Ketika saya mengaturnya untuk menggantikan 'benar', saya mendapatkan kesalahan berikut di konsol setelah menambahkannya ke array dan item tidak ditampilkan:
TypeError: undefined is not a function
at ngRepeatAction (file:///C:/TeamFoundation/PRE/js/libs/angular-1.2.1.js:18826:15)
at Object.$watchCollectionAction [as fn] (file:///C:/TeamFoundation/PRE/js/libs/angular-1.2.1.js:11347:11)
at Scope.$digest (file:///C:/TeamFoundation/PRE/js/libs/angular-1.2.1.js:11443:27)
at Scope.$apply (file:///C:/TeamFoundation/PRE/js/libs/angular-1.2.1.js:11682:24)
at HTMLDivElement.<anonymous> (file:///C:/TeamFoundation/PRE/js/libs/angular-1.2.1.js:17531:21)
at HTMLDivElement.jQuery.event.dispatch (file:///C:/TeamFoundation/PRE/js/libs/jQuery-1.8.2.js:3063:34)
at HTMLDivElement.elemData.handle.eventHandle (file:///C:/TeamFoundation/PRE/js/libs/jQuery-1.8.2.js:2681:47)
Baris 9101, yang ada dalam fungsi "consoleLog", jadi tampaknya gagal menulis sesuatu ke konsol, gagal, tetapi tetap berhasil menulis kesalahan di sana! Saya sudah mencoba men-debugnya dan tidak berhasil melakukannya.
Ketika saya mengaturnya untuk menggantikan 'false', itu berfungsi dengan baik. Saya ingin mereka mengganti elemen sumber jika tidak, pemformatannya akan sangat merepotkan karena elemen tambahan, dan dapat melakukannya sebelum peningkatan.
Adakah yang bisa memberikan saran di sini?