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;
}
])
答案 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