我一直在学习AngularJS,我想将它与我的SF2后端集成。 我对路线感到困惑,让我们看看我有什么:
当我们进入/ 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';
});
ps:你可以看到我使用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
时,我会看到一个只有标题为“用户管理器”的空白页面。我做错了什么?
答案 0 :(得分:3)
你的角度路线在哈希之后。这意味着
www.yoursite.com/usermanager
对于symfony路由器的女巫是/ usermanager,对于你的角度应用程序来说就是
/
如果你访问这个
www.yoursite.com/usermanager/#/usermanager
然后angulars route将是/ usermanager。
如果说,angular的路由与Symfony的路由系统完全不同,它们不应该有冲突。因为角度路线发生在#。
之后