在ajax fetch之后UI不会更新

时间:2015-11-15 18:29:40

标签: 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) {
        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内尝试它。

我哪里错了?

1 个答案:

答案 0 :(得分:0)

我发现了问题。要求使用相同的控制器有两个元素。一个是日期选择器元素,另一个是项目列表。因此,每当我选择日期时,范围就会发生变化。