我在后端使用symfony 2,在前端使用angularjs。 当我尝试角度路线时,它不起作用。 这是我的app.js
scotchApp.config(function($routeProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl : '/Resources/views/Default/home.html.twig',
controller : 'mainController'
})
// route for the about page
.when('/about', {
templateUrl : '/Resources/views/Default/about.html.twig',
controller : 'aboutController'
})
// route for the contact page
.when('/contact', {
templateUrl : '/Resources/views/Default/contact.html.twig',
controller : 'contactController'
});
});
感谢您的帮助
答案 0 :(得分:0)
您正在尝试在ngView指令中获取twig模板。 你的Angular主app.js应该放在你的资产文件夹中(web / bundles / yourbundle / js /)。
如果是,在角度路由声明中,模板的路径是错误的。
您当前的浏览网址为/
,并且您尝试仅使用/src/Namespace/YourBundle/Resources/views/*.html.twig
调用放置在/Resources/views/*.html.twig
中的模板,因此您收到错误是正常的。
所以:
1)您必须使用良好的完整路径调用模板
您的申请主持人从/
开始,地点为/web/app_dev.php
要调用捆绑资源中的模板,您必须执行以下操作:
.when('/', {
templateUrl : 'http://localhost/projects/trilife/src/namespace/YourBundle/Resources/views/Default/home.html.twig',
controller : 'mainController'
})
但是从客户端调用服务器端文件是一种非常糟糕的做法。
2)您的Angular模板位置错误
AngularJS是客户端,您尝试从服务器端应用程序的核心调用模板。您的ngRoute模板只能在/web
文件夹中访问。请将其放入您的Resources/public
文件夹中,然后通过/
浏览网址进行访问。
3)无法在ngView / ngRoute中使用Twig模板
Angular是客户端,PHP是服务器端(解释语言)。
如果在加载页面后调用twig模板,则不会解释PHP,因此不会呈现使用twig花括号调用的所有变量。您应该使用.html
或其他标记扩展名。
进行此更改后,您的应用程序应该可以正常工作。