我有一个视图产品,其中填充了来自控制器ProductsCtrl的数据。单击其中一个产品时,id将传递给控制器中的函数。
在此函数内部,调用ProductsService中的另一个函数,生成http请求。服务中的函数将响应中的数据传递给控制器中的函数。从那里我尝试将状态更改为另一个视图(产品详细信息),传递这些数据。
到目前为止代码:
控制器:
$scope.gotoproduct = function (product_id) {
console.log("the product id "+product_id); //ok
ProductService.productdetail(product_id).then(function(data) {
// $scope.userdata = data;
console.log("@product detail controller funct")
console.log(data);
console.log("prape id -- "+product_id);
$state.go('product_detail', {the_data: data})
}).catch(function(errorResponse) {
console.log('error', errorResponse);
});
}
服务:
service.productdetail = function(product_id){
console.log("@product detail service funct");
return httppostrequest($http, producturl, productdata);
}
国家声明:
.state('product_detail', {
url: '/products/detail',
parent: 'app',
params: {the_data: null},
views: {
'products-tab@app': {
templateUrl: 'templates/product.detail.html',
controller: 'ProductsCtrl as product'
}
}
})
视图(我保持简单,只显示数据):
<ion-view view-title="{{::products.messages.title}}" >
<ion-content>
<div class = "card">
<div class = "item item-avatar">
<img src = "my-image.png">
</div>
<div class = "item item-body">
<img class = "full-image" src = "my-image.png">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eget
pharetra tortor. Proin quis eros imperdiet, facilisis nisi in, tincidunt orci.
Nam tristique elit massa, quis faucibus augue finibus ac.
</div>
</div>
<p>{{product.the_data}}</p>
</ion-content>
</ion-view>
一切都正常执行。 id传递给控制器,然后传递给服务。该服务发出请求并将响应正确传递给控制器。状态的变化和视图变化对产品细节的影响。但是没有显示数据。我的一个理论涉及角度是异步的事实。也许在数据传递之前状态发生了变化。但是我尝试放置静态数据但仍然没有显示任何内容。