Angularjs ajax获取后UI未更新

Angularjs ajax获取后UI未更新,angularjs,ajax,api,Angularjs,Ajax,Api,我有一个餐厅应用程序的代码: // Select date and load resources $scope.selectDate = function (date) { $scope.dateInActiveSelection = date; loadMenuFor(date); }; // Load daily menu for given date. function loadMenuFor (date) {

我有一个餐厅应用程序的代码:

    // 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);
    };
但是用户界面没有更新。我有一个
{{menuItems.length}
显示,另一个
ng repeat
都没有更新

我尝试了$scope.$apply(),如其他答案中所述,但我得到了一个进行中的错误,即使在$timeout内尝试也是如此


我哪里出错了?

我发现了问题所在。有两个元素要求相同的控制器。一个是日期选择器元素,另一个是带有项目列表的元素。因此,每当我选择日期时,作用域都会发生更改。

您可以在DateApi回调函数中放置一个日志,以查看是否从服务器获取数据。请向我们显示您的视图,并确保您的$timeout仅包装了数据的分配
$timeout(function(){$scope.menuItems=$scope.originalMenuItems=response.data;})
@GaneshKumar我这样做了,我正在获取数据。模型也在根据日志进行更新,但无法更新UI。然后,我认为您也应该发布HTML代码。我发现了问题。有两个元素请求相同的控制器。一个是日期选择器元素,另一个是带有项目li的元素所以,每当我选择日期的时候,范围都在改变。