2015-10-23 67 views
1

同步我在工廠數據存​​儲這樣的:數據不能使用angularjs

module.factory('AddedStockListData', function(){ 
var list= []; 
var size = 0; 
return{ 
    getList: function(){ 
     return list; 
    }, 
    setList: function(data){ 
     list = data; 
    }, 
    getSize:function(){ 
     return size; 
    }, 
    setSize:function(){ 
     size++; 
    }, 
    setDelSize:function(){ 
     size--; 
    } 
} 
}); 

而在我的控制器中的代碼如下:

$scope.stocksSearchList = AddedStockListData.getList(); 

    $scope.load = function($done){   
    $timeout(function() { 
     document.getElementById("showTipsToDropDown").style.display = "none"; 
     $scope.stocksSearchList = AddedStockListData.getList(); 
     $done(); 
    }, 500); 

} 

我的HTML這樣的:

<ons-page ng-controller="createPortStockController"> 
    <ons-pull-hook ng-action="load($done)" var="loader" id="pullDown"> 
     <span ng-switch="loader.getCurrentState()"> 
      <span ng-switch-when="initial"><ons-icon size="35px" icon="ion-arrow-down-a"></ons-icon> Pull down to refresh</span> 
      <span ng-switch-when="preaction"><ons-icon size="35px" icon="ion-arrow-up-a"></ons-icon> Release to refresh</span> 
      <span ng-switch-when="action"><ons-icon size="35px" spin="true" icon="ion-load-d"></ons-icon> Loading data...</span> 
     </span> 
    </ons-pull-hook> 
    <div> 
     <ons-toolbar class="DCF" fixed-style> 
      <div class="left"> 
       <ons-back-button style="color:white;"></ons-back-button> 
      </div> 
      <div class="center" style="font-size:22px;" >Create Portfolio</div> 
      <div ng-click="create()"class="right" style="font-size:18px;color:white;margin-top:10px;padding-right:10px;" >Create</div> 
     </ons-toolbar> 
     <div class="addStockButton" ng-click = "myNavigator.pushPage('portStockSearchList.html', { animation : 'slide'})"> 
      <i class="fa fa-plus" ></i>Add Stock 
      <p id="showTipsToDropDown"style="margin:0px;font-size:12px;text-align:center;color:#adadad;">After your first time add stocks, please drop down to refresh</p> 
     </div> 

     <div class="stockSearchList"> 
      <div ng-repeat="stockSearch in stocksSearchList"> 
       <div class="stockSearchOne"> 
        <div class="stockSearchOneComp">{{stockSearch.company}}</div> 
        <div class="stockSearchOneInfo">Symbol: {{stockSearch.symbol}} | Exchange:{{stockSearch.exchange}} </div>       
       </div> 
      </div> 
     </div> 
    </div> 

實際上,我改變了下一頁的工廠數據,我想讓這個頁面在工廠數據改變時改變顯示。 但結果是,在我第一次更改下一頁中的數據並返回到此頁面時,數據將不會顯示,我將使用ons-pull-hook>刷新此頁面,然後如果我離開到下一頁來更改數據,當我回到這裏時,數據會被同步顯示。 所以結果是在第一次,我不得不刷新頁面來獲取數據,但第一次後,我不需要這樣做

任何人都可以幫助我解決這個問題?

回答

0

嘗試使用$scope.$apply()獲取數據後,應該更新內容而不需要刷新頁面。你可以瞭解更多關於$scope.$apply()here

+0

我不知道該怎麼做,因爲數據已經在下一頁獲取,實際上在其他控制器中。 – Miao

相關問題