我必须显示产品列表,并能够点击它们以获得有关它们的更多信息。
我的产品列表存储在名为:" productsServices"
的服务中我有一个html页面显示我的所有产品,另一个显示1个产品的详细信息。每个html页面都有自己的控制器。
当我在详细信息页面中更新产品时,更改已在我的productsServices中完成,但未在我的全球产品视图中验证。
(function ()
{
angular.module('app').service('productsServices', ['$http', '$q', ProductsServices])
that = this
that.products = /*arrayOfData*/;
that.getProducts = function () {
return that.products;
}
})();
(function ()
{
angular.module('app').controller('ProductsController', ['$http', '$q', 'productsServices', ProductsController])
that = this
that.products = productsServices.getProducts;
that.showDetail = function (item) {
$state.go('menu.product', { myParam: item });
}
})();

<!--Global HTML page-->
<ion-content id="content" class="has-header has-subheader" delegate-handle="myScroll">
<ion-list>
<ion-item ng-repeat="product in that.products() track by product.ProductId" href="#" ng-click="that.showDetail({{product}})">
<div class="innerProd">
<img id="productPicture" name="productPicture" ng-src='data:image/png;base64,{{product.ThumbnailPhoto}}'></div>
<div class= "innerProd">
<p>{{product.Name}}</p>
<p>{{product.Price}}$</p>
<ion-option-button class="button button-assertive"
ng-click="doDelete({{product}})">
Supprimer
</ion-option-button>
</div>
</ion-item>
</ion-list>
<ion-infinite-scroll ng-if="moreDataCanBeLoaded()" icon="ion-loading-c" on-infinite="loadMoreData()" distance="100%">
</ion-infinite-scroll>
</ion-content>
&#13;
所以,当我检查&#34; that.showDetail&#34;方法,它是即使产品已在服务中更新而被发送的旧产品。
我不是英语,对于我的句子中的语言错误感到抱歉^^&#39;
提前感谢您的帮助^^&#39;
答案 0 :(得分:0)
好的我找到了问题的答案,我已经将我发送的参数替换为我的“that.showDetail”函数。我不再直接发送对象,而是我的项目的索引。
<ion-item ng-repeat="product in that.products() track by product.ProductId" href="#" ng-click="that.showDetail({{$index}})">
我猜这个角度不会在ng-click调用^^'
中注入更新感谢您抽出时间