2017-01-22 103 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