角度解析不加载

时间:2017-01-22 23:09:35

标签: angularjs

Angular 1.6,ui.router问题。我遇到了一个国家决心的问题。任何时候我将解析功能放入$ stateProvider我的视图渲染中没有任何内容。如果我只注释解析部分,我的出价变量会在视图中显示硬编码值。

看起来/bids.json有我需要的数据,因为如果我在没有解析状态的情况下运行console.log($http.get('/sales.json')),在我的控制器中会返回以下内容:

  

$$ state:Object> value:对象>数据:数组[2]> 0:对象   金额:“45342”货币:“USD”

以下代码中的错误在哪里?

angular.module('salesApp', ['ui.router', 'templates'])
.config([
'$locationProvider',
'$stateProvider',
'$urlRouterProvider',
function($locationProvider, $stateProvider, $urlRouterProvider) {
  $locationProvider.html5Mode({ 
    enabled: false
  });
  $locationProvider.hashPrefix('');

  $stateProvider
    .state('sales', {
      url: '/home',
      templateUrl: 'home/_home.html',
      controller: 'MainCtrl',
      resolve: { //whenever I enable this, nothing renders in view
        postPromise: ['sales', function(salesReturned){
            var al = salesReturned.getSales('/sales.json');
        }]
      }
    });

  $urlRouterProvider.otherwise('home');
}])

.factory('sales', ['$http', function($http){
  var o = {
    sales:[
        {currency: 'USD', amount: 5},
        {currency: 'USD', amount: 5}
    ]
  };
  o.getSales = function(JSONurl) { 
        return $http({method: 'GET', url: JSONurl}).success(function(data){
      angular.copy(data, o.sales);
    });
  };
  return o;
}])

.controller('MainCtrl', [
    '$scope',
    'sales',
    '$http',
    function($scope, sales, $http){
      $scope.sales = sales.sales; 
    }
])

2 个答案:

答案 0 :(得分:0)

resolve属性postPromise是一个数组。这看起来很奇怪。它可能应该是:

postPromise: function(bidsReturned){
    return bidsReturned.getBids('/bids.json');
}

如果您传入数组以确保代码在minify之后正常工作,那么您应该使用不同的技术。请参阅示例here

答案 1 :(得分:0)

希望这会让人们感到头疼:.success(function(data)已被角色1.6弃用。需要使用.then(function successCallback(response)代替:new angular docs