2017-01-22 67 views
-1

Angular 1.6,ui.router问题。我遇到了一个国家决心的问题。任何时候我把解析特性放入$ stateProvider中,我的视图中都没有呈现。如果我仅仅注释了解决方案部分,我的出价变量会在硬编码值的视图中显示出来。Angular Resolve Not Loading

看起来/bids.json有我需要的,因为如果我跑console.log($http.get('/sales.json'))没有解决的状态,在我的控制器,它返回下列数据:

$$状态:对象>值:对象>数据:数组[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; 
    } 
]) 
+1

'postPromise'不返回任何 – charlietfl

+0

我很困惑,当我去掉包含“postPromise”没有决心在斜视渲染,甚至没有'

你好

'如果我把它拿出来,那么hello world和硬编码的'bids'变量呈现 – HoosierCoder

+1

路由器正在等待您的承诺,在呈现状态视图之前用值解析。您没有返回已解决的值,因此它不会呈现 – Phil

回答

0

希望这会为人们节省一些头痛:.success(function(data)已被弃用在角度1.6。需要使用.then(function successCallback(response)而不是每个新angular docs

0

的resolve属性postPromise是一个数组。这对我来说看起来很奇怪。它可能应该阅读:

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

如果您在数组中传递,以确保代码正常工作后缩小,那么你应该使用不同的技术。见示例here

+1

实施你的建议,仍然没有工作。这种解决方法基于:https://thinkster.io/tutorials/angular-rails/wiring-everything-up。这很奇怪,因为我已经在角度1.5上获得了不同的应用程序以这种方式工作,但出于某种原因,这个失败了。 – HoosierCoder

+0

创建一个codepen或plnkr来演示您的问题。然后我们可以帮助更好。 –

+0

这个答案将无法缩小。 OP正确使用了DI注释 – Phil