Dan*_*iel 5 symfony angularjs angular-new-router
我正在Symfony2 Bundle中开发AngularJS 1.4应用程序.Symfony提供"后端"(API)和Angular前端(当然).
我正在使用新的路由器并坚持使用几个指南和最佳实践示例建议的组件驱动文件夹方法.但是由于我使用gulp构建我的JS并且仅包含完整的Build-Files,因此Angular控制器无法找到其模板存在问题.
我告诉你我的解决方案,我不喜欢:
(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];
});
}
}());
Run Code Online (Sandbox Code Playgroud)
我编写了我的Angular代码,src/myBundle/Resources/js/然后将最终的Build放到最后的Build中,src/myBundle/Resources/public/然后在包含Angular应用程序的Twig模板中提供.
我现在正在做的,基本上是将我的组件的模板放在它们所属的位置(这将是src/myBundle/Resources/js/components/dashboard/仪表板示例),而是放入src/myBundle/Resources/public/templates.
我必须告诉路由器模板位于其他地方$componentLoaderProvider.setTemplateMapping().
我有两个问题:
AppController)模板的位置吗?基于API架构的酷炫之处在于,您可以从前端(AngularJS应用程序)中解除后端应用程序(API).
我建议为前端和后端创建两个单独的应用程序.每个应用程序都应该位于自己的Git存储库中,并最终可以托管在自己的服务器上:
index.html文件,JavaScript文件,CSS样式表,图像......).API是双方之间的合同,它们可以单独发展.维护得到缓解,联轴器紧凑.前端应用甚至可以直接托管在CDN上,例如Amazon CloudFront或GitHub页面,以获得最佳性能.
我写了一篇文章,详细介绍了这种方法,并介绍了我构建的一些工具.它使用Symfony和AngularJS.
如果您仍想要一个应用程序:
app/frontendweb/| 归档时间: |
|
| 查看次数: |
1976 次 |
| 最近记录: |