当我在角度使用路由symfony时我使用FOSJsRoutingBundle,但我有这个错误:
https://docs.angularjs.org/error/ $注射器/ modulerr P0 = MyApp来&安培; P1 =的ReferenceError:%20Routing%图20是%20not%20defined%0A%20%20%20%20原子%20http:%2F%2Flocalhost%2Fauthenti%2Fweb %2Fapp_dev.php:30:22%0A%20%20%20%20原子%20Object.invoke%20(HTTPS:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular。 min.js:44:357)%0A%20%20%20%20原子%20D%20(HTTPS:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min。 JS:42:237)%0A%20%20%20%20个原子%20https:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:42:376% 0A%20%20%20%20原子%20P%20(HTTPS:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:8:7)%0A% 20%20%20%20原子%20克%20(HTTPS:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:42:138)%0A%20% 20%20%20原子%20GB%20(HTTPS:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:46:251)%0A%20%20% 20%20原子%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%20原子%20xe%20(HTTPS:%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.6.5%2Fangular.min.js:21:1
code 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 %}
code routing.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,
));
}
}
请帮我解决这个问题,谢谢
答案 0 :(得分:0)
看起来你需要一些注射:
app.config(['$routeProvider', 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"})
});
}]);
答案 1 :(得分:0)
搜索后我解决了bug,我在代码中添加了这两行:
<script type="text/javascript" src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script type="text/javascript" src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>
感谢我的朋友的帮助