angularjs route不适用于symfony

时间:2014-08-16 11:36:28

标签: angularjs symfony

我在后端使用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'
    });
  });

感谢您的帮助

1 个答案:

答案 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或其他标记扩展名。

进行此更改后,您的应用程序应该可以正常工作。