2016-08-11 44 views
0

我正在Symfony3和Angular 1.5.8集成,api部分已經準備就緒,現在我正在嘗試使用角度js顯示結果,我沒有任何成功用。無法加載角度部分

這是我的工廠,負責從symfony中獲取數據

jobs.fac.js

(function() { 
    "use strict"; 

    angular 
     .module("ngListings") 
     .factory("jobFactory", function ($http) { 
      console.log('inside the factory'); 
      function getJobs() { 
       return $http.get(Routing.generate("get_jobs")); 
      } 

      return { 
       getJobs: getJobs 
      } 
     }) 

})(); 

這是我的控制器jobs.ctrl.js

(function() { 
    "use strict"; 

    angular 
     .module("ngListings") 
     .controller("jobsCtrl", function ($scope, $state, $http, jobFactory) { 
      var vm = this; 
      $scope.$on 
      vm.jobs; 
      jobFactory.getJobs().then(function (jobs) { 
       vm.jobs = jobs.data; 
      }); 
     }); 

})(); 

這是我main.js我在哪裏設立狀態和與狀態鏈接的控制器

angular 
    .module("ngListings", ["ui.router"]) 
    .config(function ($stateProvider) { 

     $stateProvider 
      .state('jobs',{ 
       url: '/listings/jobs', 
       templateURL: '/partials/home.html', 
       controller: 'jobsCtrl as vm' 
      }) 
     ; 
    }); 

現在,這是我的索引我在哪裏添加ui-view

{% extends 'base.html.twig' %} 
{% block body %} 
    <ui-view></ui-view> 
{% endblock %} 

現在,正如我所說,我使用Symfony的,所以我也嘗試添加web目錄內,也在裏面在兩種情況下AppBundle/Resources/views/jobs/template-name諧音部分不會出現,並且控制檯中也沒有錯誤。

在控制檯中,我可以看到正在調用的URL和正在返回的數據,但是它沒有顯示在瀏覽器中。

我真的很感激,如果有人能告訴我我在這裏失蹤了什麼?

注:Symfony和Angular沒有設置分隔,角度js文件保存在AppBundle中,然後被轉儲到web目錄中,這僅僅適用於symfony用戶的課程,任何非symfony用戶都可以看到我做錯了什麼歡迎發表評論

回答

1

要通過Symfony提供模板,您需要一個路徑/控制器通過url訪問它(在您的示例中爲「partials/home.html」)。優雅的解決方案是有一個控制器將部分名稱作爲變量,並將該分支文件作爲響應呈現。請看這張幻燈片http://www.slideshare.net/mladenplavsic/symfony-angularjs-dafed26/19作爲模板控制器的例子。

有了這個,你可以將你的templateUrl改成類似「/template/home.html」的東西,其中「home」是Symfony控制器的「$ name」值。