使用FOSJsRoutingBundle和简单的html页面& angularJs

时间:2015-11-21 23:47:18

标签: angularjs symfony

正如我在上一个问题here中提到的那样,我尝试编写一个angularJs客户端来使用symfony2 restful api。 这是我的角度模块:

var app = angular.module('myApp', ['ngRoute']);
app.factory("services", ['$http', function($http) {
var serviceBase = '/myproject/web/app_dev.php/api/';


var obj = {};
obj.getCategories = function(){
return $http.get(serviceBase + 'categories');
}
obj.getCategorie = function(CostumerID){
return $http.get(serviceBase + 'costumer?id=' + CostumerID);
}

obj.deleteCostumer = function (id) {
return $http.delete(serviceBase + 'deleteCostumer?id=' + id).then(function (status) {
return status.data;
});
};

return obj;
}]);

app.controller('listCtrl', function ($scope, services) {
services.getCategories().then(function(data){
$scope.categorie = data.data;
});
});

我创建了一个索引页面:

<!DOCTYPE html>
<html data-ng-app="myApp" ng-app lang="en">
<head>
<meta charset="utf-8">
<link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">

</head>
    <body>
        <div>
        <div class="container">
        <div data-ng-view="" id="ng-view"></div>
        </div>
        </div>
        <script src="/angular/angular.min.js"></script>
        <script src="/app/app.js"></script>
    </body>
</html>

我发现我可以使用FOSJsRoutingBundle为我的应用程序生成路线,但在文档中我应该将这两行添加到我的代码中:

<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script src="{{ path('fos_js_routing_js', {'callback': 'fos.Router.setData'}) }}"></script>

但我不会使用树枝,我不知道我可以使用它吗?

此外,我不知道第一次运行应用程序时应该询问哪个网址,因为当我要求索引时,我有一个空白页面:(

有人可以帮助我并告诉我应该做什么或我错过了什么?

1 个答案:

答案 0 :(得分:0)

对于默认配置,您可以从以下位置获取FOSJSRouting js文件:

  1. @ FOSJsRoutingBundle /资源/公共/ JS / router.js
  2. JS​​ / fos_js_routes.js
  3. 然后你可以在symfony中使用assetic(阅读这个documentation以获取更多信息),包括上面的js文件,并指定输出文件,例如js / compiled.js。 然后将您的html更新为此类

    <!DOCTYPE html>
    <html data-ng-app="myApp" ng-app lang="en">
    <head>
    <meta charset="utf-8">
    <link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">
    
    </head>
        <body>
            <div>
            <div class="container">
            <div data-ng-view="" id="ng-view"></div>
            </div>
            </div>
            <script src="/angular/angular.min.js"></script>
            <script src="/js/compiled.js"></script>
            <script src="/app/app.js"></script>
        </body>
    </html>
    

    在app.js中,您可以通过这种方式从Symfony Routing获取网址

    var url = window.Routing.generate(route, params, absolute);
    

    希望有所帮助