如何观察和应用角度变化的Dom

时间:2016-06-08 18:09:50

标签: javascript angularjs

点击按钮后,我正在创建div <li>来保存图片。我正在使用以下功能:

<button data-ng-click="createWorkOrder()">Post project</button>

功能:

$scope.createWorkOrder  = function () {
    //API call to get data
    $scope.myPromise = operationsFactory.readWorkOrders().success(function (response) {
        $scope.workOrdersList = response.result;
    })
};

HTML:

<ul>
    <li dir-paginate="wd in workOrdersList | filter: search.status | filter: search.name | itemsPerPage: 10">
        <a href=" ">
            <h4>{{wd.name}}</h4>
        </a>
        <p>Status: {{wd.status}}</p>
    </li>
</ul>

以上列表已创建,但我需要刷新页面才能在页面上看到它。我希望一旦从上面的功能

填充新数据,它就会自动显示

1 个答案:

答案 0 :(得分:0)

我让this plunker试图重现你的问题,它没有任何问题。

@claies上面说的是正确的,“角度将自动更新数据,除非你不改变一边或另一边的值”。 您确定要正确更新数据吗?

如您所见,一旦请求结束,列表就会更新。
如果您的代码仍然无效,请在请求完成后尝试调用var fields = ['foo', 'bar']; for (var i=0, n=fields.length; i<n; i++) { createWatch(fields[i]); } function createWatch(field) { $scope.$watch('vm.model.' + field, function(newValue, oldValue) { console.log(field); //'foo' on first iteration, 'bar' on next //logic that should now give the expected result }); } 方法,它将更新绑定。 $scope.$apply docs

查看:

$scope.$apply()

控制器

<ul>
    <li dir-paginate="wd in workOrdersList | filter: search.status | filter: search.name | itemsPerPage: 5">
        <a href="{{wd.url}}">
            <h4>{{wd.name}}</h4>
        </a>
        <p>Status: {{wd.id}}</p>
    </li>
</ul>
<dir-pagination-controls></dir-pagination-controls>