2016-08-11 6 views
0

私はSymfony3とAngular 1.5.8の統合に取り組んでいます.APIの部分はすべて準備が整っていますが、角度のjを使って部分的に結果を表示しようとしています。と。角を部分的に読み込むことができない

これはこれはこれは私が設定しています私のmain.jsである私のコントローラ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; 
      }); 
     }); 

})(); 

ある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 
      } 
     }) 

})(); 

からデータをフェッチする責任がある私の工場であります状態とリンクされているコントローラとの間の接続を制御します。

今これは私が、私はそう、私は両方のケースでWebディレクトリ内のパーシャルを追加しようとしたとも AppBundle/Resources/views/jobs/template-name内でいるのSymfonyを使用しています述べたように、私は今 ui-view

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

を追加してい私の指標である

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

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

部分的に表示されず、コンソールにもエラーはありません。

コンソールでは、URLに行われた呼び出しと返されたデータがブラウザに表示されていないことがわかります。

誰かが私にここで行方不明を教えてもらえると本当に感謝します。

注:SymfonyとAngularは分離されていません。角度のjsファイルはAppBundleに保存され、Webディレクトリにダンプされます。これはsymfonyのユーザーで、私が間違っていることを見ることができるコメント歓迎

答えて

1

symfonyでテンプレートを提供するには、url(あなたの例では "partials/home.html")を使ってテンプレートにアクセスする必要があります。エレガントな解決策は、パーサーの名前を変数に取っているコントローラーを1つ持ち、そのtwigファイルを応答としてレンダリングすることです。 Template contollerの例としてこのスライドhttp://www.slideshare.net/mladenplavsic/symfony-angularjs-dafed26/19を見てください。

これで、templateUrlを "/template/home.html"のように変更できます。ここで、 "home"はsymfonyコントローラの "$ name"値です。

関連する問題