sách gpt4 ai đã đi

Hạt giống AngularJS: đưa JavaScript vào các tệp riêng biệt (app.js, controllers.js, directives.js, filters.js, services.js)

In lại Tác giả: IT Prince Thời gian cập nhật: 2023-10-29 02:43:57 27 4
mua khóa gpt4 Nike

Tôi đang sử dụng hạt gócMẫu để xây dựng ứng dụng của tôi. Ban đầu, tôi đặt tất cả mã JavaScript của mình vào một tệp chính.js. Tệp này chứa khai báo mô-đun, bộ điều khiển, chỉ thị, bộ lọc và dịch vụ của tôi. Ứng dụng này hoạt động tốt như thế này, nhưng khi ứng dụng trở nên phức tạp hơn, tôi lo ngại về khả năng mở rộng và bảo trì. Tôi nhận thấy rằng mỗi mẫu angular-seed đều có các tệp riêng biệt, vì vậy tôi đã thử di chuyển mã của mình từ một chính.js Tệp được phân phối cho từng tệp khác được đề cập trong tiêu đề của câu hỏi nàyhạt góccủaứng dụng/jsTìm mẫu trong thư mục.

Câu hỏi của tôi là: Làm thế nào để quản lý các phụ thuộc để ứng dụng hoạt động bình thường? Đã tìm thấy tài liệu hiện cóđâyĐiều này không rõ ràng lắm vì mỗi ví dụ đưa ra đều hiển thị một tệp nguồn JavaScript.

Một trong những ví dụ của tôi là:

ứng dụng.js

angular.module('myApp', 
['myApp.filters',
'myApp.services',
'myApp.controllers']);

Bộ điều khiển.js

angular.module('myApp.controllers', []).
bộ điều khiển('AppCtrl', [hàm ($scope, $http, $filter, MyService) {

$scope.myService = MyService; // tìm thấy trong services.js

// các chức năng khác...
}
]);

bộ lọc.js

angular.module('myApp.filters', []).
bộ lọc('myFilter', [hàm (MyService) {
hàm trả về(giá trị) {
if (MyService.data) { // kiểm tra để đảm bảo dịch vụ được tải
đối với (var i = 0; i < MyService.data.length; i++) {
// mã để trả về giá trị thích hợp từ MyService
}
}
}
}]
);

Dịch vụ.js

angular.module('myApp.services', []).
nhà máy('MyService', hàm($http) {
var MyService = {};
$http.get('resources/data.json').success(hàm(phản hồi) {
MyService.data = phản hồi;
});
trả về MyService;
}
);

chính.js

/* Đây là tập tin duy nhất tôi muốn tách thành các tập tin khác */
var myApp = angular.module('myApp'), []);

myApp.factory('MyService', hàm($http) {
// cùng mã như trong services.js
}

myApp.filter('myFilter', hàm(MyService) {
// cùng mã như trong filters.js
}

hàm AppCtrl ($scope, $http, $filter, MyService) {
// cùng mã như trong app.js
}

Làm thế nào để quản lý sự phụ thuộc?

Cảm ơn trước.

1 Câu trả lời

Vấn đề xảy ra do bạn đang "khai báo lại" mô-đun ứng dụng của mình trong tất cả các tệp riêng biệt.

Đây là cách khai báo mô-đun ứng dụng (không chắc khai báo có đúng không):

angular.module('myApp', []).controller( //...

Đây là cách gán mô-đun ứng dụng của bạn (cũng không chắc liệu việc gán có đúng không):

angular.module('myApp').controller( //...

Lưu ý không có dấu ngoặc vuông.

Vì vậy, phiên bản trước,VớiDấu ngoặc vuông chỉ nên được sử dụng một lần, thường là trong ứng dụng.js hoặc chính.js. Tất cả các tài liệu liên quan khác - Bộ điều khiển, chỉ thị, bộ lọc ... - nên sử dụng phiên bản sau,KHÔNGDấu ngoặc vuông.

Tôi hy vọng điều này có ý nghĩa. Cảm ơn!

Liên quan đến javascript - AngularJS seed: đưa JavaScript vào các tệp riêng biệt (app.js, controllers.js, directives.js, filters.js, services.js), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/16771812/

27 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com