Tôi đang phát triển Ứng dụng AngularJS 1.4 trong Gói Symfony2. Symfony cung cấp "backend" (API) và Angular the frontend (tất nhiên).Thực hành tốt nhất với các vị trí mẫu AngularJS trong Symfony 2 với Bộ định tuyến Angular mới?
Tôi đang sử dụng bộ định tuyến mới và gắn vào các phương pháp tiếp cận thư mục theo thành phần được đề xuất bởi một số hướng dẫn và ví dụ thực hành tốt nhất. Nhưng kể từ khi tôi xây dựng JS của tôi với gulp và chỉ bao gồm Build-Files hoàn chỉnh, có vấn đề với bộ điều khiển Angular không tìm thấy mẫu của họ.
tôi chỉ cho bạn giải pháp của tôi, mà tôi không thích:
(function() {
'use strict';
angular
.module('myModule', ['ngNewRouter', 'myModule.dashboard'])
.config(TemplateMapping)
.controller('AppController', AppController);
/* @ngInject */
function AppController ($router) {
$router.config([
{ path: '/', redirectTo: '/dashboard' },
{ path: '/dashboard', component: 'dashboard' }
]);
}
/* @ngInject */
function TemplateMapping($componentLoaderProvider) {
$componentLoaderProvider.setTemplateMapping(function (name) {
return {
'dashboard': '/bundles/mybundle/templates/dashboard/dashboard.html'
}[name];
});
}
}());
tôi viết Mã kiễu góc của tôi trong src/myBundle/Resources/js/
và ngụm đặt Build cuối cùng để src/myBundle/Resources/public/
mà là sau đó có sẵn trong Template Twig chứa ứng dụng kiễu góc .
Điều tôi đang làm ngay bây giờ, về cơ bản là đặt các mẫu của các thành phần của tôi không phải nơi chúng thuộc về (có thể là src/myBundle/Resources/js/components/dashboard/
cho ví dụ trang tổng quan) nhưng vào src/myBundle/Resources/public/templates
.
Tôi phải thông báo cho bộ định tuyến rằng mẫu nằm ở nơi khác thông qua $componentLoaderProvider.setTemplateMapping()
.
Tôi có hai câu hỏi:
- Tôi có thể giải quyết vấn đề vị trí mẫu này một cách thanh lịch hơn?
- Tôi có thể nói trực tiếp với bộ định tuyến (trong
AppController
) nơi mẫu đó không?
Cám ơn những suy nghĩ của bạn. Mặc dù điều này đúng trong một số trường hợp nhất định nơi API phụ trợ của bạn (ví dụ: symfony) và ứng dụng giao diện người dùng của bạn (ví dụ: AngularJS) là hai thứ độc lập. Trong dự án này, chúng ta bắt đầu với một ứng dụng Angular như một phần của một ứng dụng symfony. Nhưng chúng tôi đã hòa giải tất cả các Chế độ xem được hiển thị bởi symfony có lợi cho Angular vì vậy có thể cách tiếp cận của bạn sẽ trở thành một lựa chọn cho chúng tôi. Nhưng trong trường hợp đó, toàn bộ câu hỏi của Angular templating trong Symfony không tăng lên ngay từ đầu. :) – Daniel
Tôi đã chỉnh sửa câu hỏi để thêm ví dụ với một ứng dụng. –