2015-11-15 51 views
0

我有一個餐廳的應用驗證碼:UI更新不及時取

// Select date and load resources 
    $scope.selectDate = function (date) { 
     $scope.dateInActiveSelection = date; 
     loadMenuFor(date); 
    }; 

    // Load daily menu for given date. 
    function loadMenuFor (date) { 
     DataApi.dailyMenu(date, function (response) { 
      console.log('Loaded menu for ' + date.toString()); 
      $scope.menuItems = $scope.originalMenuItems = response.data; 
     }); 
    } 

我獲取新的菜單,每天的用戶使用此方法選擇:

// Select date and load resources 
    $scope.selectDate = function (date) { 
     $scope.dateInActiveSelection = date; 
     loadMenuFor(date); 
    }; 

但是UI沒有更新。我有一個{{ menuItems.length }}顯示和另一個ng-repeat都沒有得到更新。

我嘗試了$ scope。$ apply(),正如其他答案中提到的,但是我得到了一個進行中的錯誤,即使我在$ timeout中嘗試它時也是如此。

我哪裏錯了?

+0

您可以在DateApi回調函數內部放置一個日誌,以查看您是否從服務器獲取數據。 –

+0

請向我們展示您的視圖,並確保您的$超時僅包裝數據的賦值'$ timeout(function(){$ scope.menuItems = $ scope.originalMenuItems = response.data;});' –

+0

@ GaneshKumar我做了,我得到的數據。該模型也根據日誌進行更新,但無法更新UI。 – ultimate

回答

0

我發現了這個問題。有兩個元素要求相同的控制器。一個是日期選擇器元素,另一個是具有項目列表的元素。所以,無論何時我選擇日期,範圍都在變化。