2016-06-10 120 views
1

我必須顯示一個產品列表,並能夠點擊它們來獲取更多關於它們的信息。Angular JS ng-repeat元素不更新

我的產品列表存儲在一個名爲服務:「productsServices」

我誰顯示我的所有產品的HTML頁面和其他誰1個產品顯示詳細信息。每個html頁面都有自己的控制器。

當我更新我的詳細信息頁面中的產品時,更改是在我的產品服務中完成的,但未在我的全球產品視圖中進行驗證。

(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>

所以,當我檢查「that.showDetail」方法sended的產品,它的老產品,即使該產品已在服務更新是誰sended。

我沒有語言錯誤的英語很抱歉,我一句^^「提前

感謝您的幫助^^」

+0

that.products =「arrayOfData 「; ? – Vitalii

+1

'angular.module('app').service('ProductsController',['$ http','$ q','productsServices',ProductsController])' 這行看起來不行,正在嘗試創建一個名爲service 「ProductsController」 –

+0

我不明白如何從服務器或其他頁面的任何變化可以注意到全球的HTML頁面。你想這樣做「that.products()」會自動更新,無需重新加載全球頁面的權利? – Pico12

回答

0

好,我找到ansewer我的問題,我我已將參數發送給我的「that.showDetail」函數。我不再直接發送對象,而是我的項目的索引。

<ion-item ng-repeat="product in that.products() track by product.ProductId" href="#" ng-click="that.showDetail({{$index}})">

我猜的角度不更新在NG-點擊通話注射^^」

謝謝您的時間傢伙