【发布时间】:2017-07-10 14:57:29
【问题描述】:
当我在 Angular 中使用路由 symfony 时,我使用 FOSJsRoutingBundle 但我有这个错误:
https://docs.angularjs.org/error/$injector/modulerr?p0=myApp&p1=ReferenceError:%20Routing%20is%20not%20defined%0A%20%20%20%20at%20http:%2F%2Flocalhost%2Fauthenti%2Fweb%2Fapp_dev.php :30:22%0A%20%20%20%20at%20Object.invoke%20(https:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js: 44:357)%0A%20%20%20%20at%20d%20(https:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:42: 237)%0A%20%20%20%20at%20https:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:42:376%0A%20% 20%20%20at%20p%20(https:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:8:7)%0A%20%20% 20%20at%20g%20(https:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:42:138)%0A%20%20%20% 20at%20gb%20(https:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:46:251)%0A%20%20%20%20at% 20c%20(https:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:22:19)%0A%20%20% 20%20at%20Uc%20(https:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:22:332)%0A%20%20%20% 20at%20xe%20(https:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:21:1
代码 index.html.twig:
{% extends 'base.html.twig' %}
{% block title %} Acceuil {% endblock %}
{% block stylesheets %}<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/cerulean/bootstrap.min.css">
{% endblock %}
{% block body %}
<div class="container" ng-app="myApp">
<p><a href="#/!">Acceuil</a></p>
<a href="#!login">Login</a>
<a href="#!register">Register</a> <br><br>
<div ng-view></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.5/angular-route.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/todc-bootstrap/3.3.7-3.3.13/js/bootstrap.min.js"></script>
<script>
var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/", {
templateUrl: Routing.generate('homepage',{template:"default/index.html.twig"})
})
.when("/login", {
templateUrl: Routing.generate('login',{template:"default/login.html.twig"})
})
.when("/register", {
templateUrl: Routing.generate('register',{template:"default/registere.html.twig"})
});
});
</script>
</div>
{% endblock %}
代码路由.yml:
app:
resource: '@AppBundle/Controller/'
type: annotation
register:
path: /register
defaults: { _controller: MedBundle:Default:register }
options:
expose: true
api_login_check:
path: "/login_check"
api:
resource: "@MedBundle/Resources/config/routing_rest.yml"
type: rest
prefix: /
options:
expose: true
fos_js_routing:
resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"
codeApiController.php:
<?php
namespace MedBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use FOS\RestBundle\Controller\Annotations\RouteResource;
use Med\MedBundle\Entity\Med;
use Symfony\Component\HttpFoundation\JsonResponse;
use FOS\RestBundle\View\ViewHandler;
use FOS\RestBundle\View\View;
Class ApiController extends Controller {
public function getAction() {
$em = $this->getDoctrine()->getManager();
$test = $em->getRepository('MedBundle:Med')->findAll();
$viewHandler = $this->get('fos_rest.view_handler');
// Création d'une vue FOSRestBundle
$view = View::create($test);
$view->setFormat('json');
// Gestion de la réponse
return $viewHandler->handle($view);
//return array('test'=>$test);
}
public function loginAction() {
$em = $this->getDoctrine()->getManager();
return $this->render('default/login.html.twig');
}
}
代码 DefaultController.php:
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class DefaultController extends Controller
{
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
// replace this example code with whatever you need
return $this->render('default/index.html.twig', array(
'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
));
}
}
请帮我解决这个问题,谢谢
【问题讨论】: