2014-07-06 2 views
0

Я изучаю AngularJS, и я хотел бы интегрировать его с моим задним концом SF2. Я смущаюсь с маршрутами, давайте посмотрим, что у меня есть:Angularjs + Symfony2 routing не может заставить его работать

Когда мы переходим на/usermanager, система маршрутизации symfony открывает контроллер, который загружает шаблон ветви. В этом шаблоне, я загружаю все Js компоненты, необходимые для угловых и сделать это:

{% extends '::base.html.twig' %} 

{% block javascripts %} 
    {{ parent() }} 

    <script type="text/javascript" src="{{ asset('js/UserManager_Angular.js')}}"></script> 
{% endblock %} 


{% block body %} 


<h1>User Manager</h1> 

<div data-ng-view></div> 
{% endblock %} 

Теперь это мой угловой код:

var UserManager = angular.module('UserManager', ['ngRoute','ngResource']); 

UserManager.config(function($routeProvider){ 
    $routeProvider 
    .when('/addnew', 
    { 
     controller:'addNewController', 
     templateUrl:Routing.generate('_UserManager_add_new_user') 
    }) 
    .when('/', 
    { 
     controller:'UserManagerHome', 
     templateUrl:Routing.generate('_UserManager_getUser_List') 
    }) 

}); 

UserManager.factory('data_access',['$resource', 
    function($resource){ 
    return $resource(Routing.generate('_UserManager_getUserList'),{},{ 
     query:{method:'GET',isArray:true} 
    }); 

}]); 

UserManager.controller('UserManagerHome',function ($scope,data_access){ 
    $scope.users = data_access.query();  
    //$scope.orderProp = 'id'; 

}); 

пс: как вы можете видеть, я использую FOSBundle для JS маршрута. Я думаю, что я получил, как использовать это, потому что мой завод правильно получает пользователей из базы данных.

Так что я хочу, чтобы загрузить файл, содержащий классические угловые вещи, такие, как ng-repeat и т.д. Это представлено по этому маршруту:

.when('/usermanager', 
{ 
    controller:'UserManagerHome', 
    templateUrl:Routing.generate('_UserManager_userList') 
}) 

Вот мой файл маршрутизация:

_UserManager: 
    pattern: /usermanager 
    defaults: {_controller: AcmeBundle:UserManager:Home } 
    options: 
    expose: true 

_UserManager_getUser_List: 
    pattern: /usermanagerlist 
    defaults: {_controller: NRtworksSubscriptionBundle:UserManager:list } 
    options: 
    expose: true 

_UserManager_getUserList: 
    pattern: /usermanager/getuserlist 
    defaults: {_controller: AcmeBundle:UserManager:getUserList } 
    options: 
    expose: true 
    requirements: 
    _format: json 
    _method: GET  


_UserManager_add_new_user: 
    pattern: /usermanager/addnew 
    defaults : {_controller: AcmeBundle:AddNewUser:Home } 
    options: 
    expose: true 

ps2: контроллеры почти пустые, просто создавая шаблон ветки, который я ищу.

В настоящее время, когда я открываю /usermanager Я получаю пустую страницу с названием «пользовательский менеджер». Что я делаю неправильно?

ответ

3

Ваш угловой маршрут после хэша. это означает, что

www.yoursite.com/usermanager 

ведьма для симфони маршрутизатора/usermanager, для вашего углового приложения просто /

, если вы посетите этот

www.yoursite.com/usermanager/#/usermanager 

затем углы главного маршрут будет/usermanager.

Говоря о том, что маршрутизация углов является совершенно иной средой из вашей системы маршрутов Symfony, и у них не должно быть конфликтов. Потому что угловой маршрут происходит после #.

+0

Хорошо, я понял, что должен измениться .when ('/ usermanager', to .when ('/', правильно? Но все же это не работает, он помещает меня по этому адресу: http: //192.168.1.19/ Symfony24/web/app_dev.php/usermanager #/ – Eagle1

+0

вы получаете ошибки за то, что не нашли шаблоны? –

+0

Я решил это! Я думаю, что я неправильно выполнял маршрутизацию symfony. Правильно ли я это делаю? контроллеры, просто отрисовка шаблона? – Eagle1

Смежные вопросы