2016-05-24 16 views
0

メインコントローラに入る前にJSONデータの読み込みに問題があります。

私はプロジェクトのテンプレートとしてthisプロジェクトを使用しています。私は基本的にだけdistの/アプリ/ホーム/ home.jsを変更し、変更された内容があります。

angular.module('WellJournal', ['uiGmapgoogle-maps', 'ngRoute']) 
    .config(function (uiGmapGoogleMapApiProvider, $routeProvider) { 
     uiGmapGoogleMapApiProvider.configure({ 
      libraries: 'geometry,visualization,places' 
     }); 

     $routeProvider.when('/', { 
      templateUrl: 'index.html', 
      controller: 'MainController', 
      resolve: { 
       markers: ['$http', function ($http) { 
        return $http.get('http://address/api/markers/').then(function (result) { 
         console.log(result.data); 
         return result.data; 
        }); 
       }] 
      } 
     }); 

     $routeProvider.otherwise({ redirectTo: '/' }); 
    }) 
    .controller('MainController', function ($scope, $uibModal) { 
    //trying to access $scope.markers here 
    } 

そして事がmarkers: ['$http', function ($http) {...}]でトリガされません。そこで、ロードされているデフォルトページのアドレス(window.location.href)を確認したところ、file:///home/myuser/path/to/project/dir/views/index.html(対応コードhereが表示されています)と判明しました。

実際にはサーバーを設定していないので、ローカルファイルを開くだけです(おそらく?)。

この$routeProvider.when(...)句をどのようにトリガーすることができますか?私はまったくそれをすることはできますか?

ありがとうございます。

答えて

0

他の誰かが同じ問題が発生している場合 - 私は次のメソッドを使用して終了:

angular.module('WellJournal', ['uiGmapgoogle-maps']) 
     .run(function($http, $rootScope){ 
      $http.get('http://address/api/markers/'). 
      success(function(data, status, headers, config) { 
       $rootScope.markers = data; 
       $rootScope.$broadcast('markers-loaded'); 
      }). 
      error(function(data, status, headers, config) { 
       // log error 
       alert('error'); 
      }); 
     }) 
     .factory('markers', function ($rootScope) { 
      var markers; 
      $rootScope.$on('markers-loaded', function(){ 
       markers = $rootScope.markers; 
      }); 
      return { 
       data: markers 
      } 
     }) 
     .config(function (uiGmapGoogleMapApiProvider) { 
      uiGmapGoogleMapApiProvider.configure({ 
       libraries: 'weather,geometry,visualization,places' 
      }); 
     }) 
     .controller('MainController', function ($scope, $uibModal, $http, $rootScope, markers) { 
     // use data through markers argument 
     //Warning! This doesn't assure that the data is loaded before page 
     //I'm experiencing small visual lag while loading but this is the best I could do 
     } 
関連する問題