【发布时间】:2014-07-06 16:31:11
【问题描述】:
我一直在学习 AngularJS,我想将它与我的 SF2 后端集成。 我对路线感到困惑,让我们看看我有什么:
当我们进入 /usermanager 时,symfony 路由系统会打开一个控制器来加载一个 twig 模板。在这个模板中,我加载了 Angular 所需的所有 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 时,我得到一个只有标题“用户管理器”的空白页面。我做错了什么?
【问题讨论】:
标签: angularjs symfony-2.4