范围变量的更改不会更新DOM

时间:2019-02-15 16:04:34

标签: javascript html angularjs angularjs-scope angularjs-ng-repeat

我遇到了这个angularJs问题,即使存在绑定,数组中的更改也不会更新DOM。

我尝试了使用$ scope。$ apply,$ scope。$ evalAsync进行的所有操作,还尝试使用vm而不是$ scope。

AngularJs代码:

app.controller("controller", function ($scope){
    $scope.managers = [];

    $scope.RefreshManagerList = async function(){
        var response = await App.getStoreManagers();
        $scope.managers = response;
    };

    $scope.Setup = async function(){
        await App.start();
        await $scope.RefreshManagerList();
    };

    $scope.Setup();
});

HTML代码:

<header>
    <h1>Administrator Panel</h1>
</header>

<div class="jumbotron">
    <h3>Store Manager List</h3>

    <ul class="list-group">
        <li class="list-group-item" ng-repeat="manager in managers">
            {{manager}}
        </li>
    </ul>
</div>

可以预期的是,将$ scope.managers设置为response时,该列表应在HTML页面中呈现。

编辑:

尝试执行此操作也不起作用。 Console.log仍然提供预期的对象以显示在列表中。如果我以最小的方式与页面互动,列表将自动加载:

app.controller("administratorController", function ($scope){
    $scope.managers = {content: null};

    $scope.RefreshManagerList = function(){
        App.getStoreManagers().then(function(response){
            $scope.managers.content = response;
            console.log($scope.managers.content);
        });
    };

    $scope.Setup = function(){
        App.start().then(function(){
            $scope.RefreshManagerList();
        });
    };

    $scope.Setup();
});

0 个答案:

没有答案