我有一个模型,我用它来迭代并在我的视图上创建一个表格结构。我点击了一个按钮,我必须从DB获取最新值并分配给模型。然后我得到模型的innerHTML并创建我当前视图的pdf。
我面临的问题是,在将数据完全分配给模型和视图之前,刷新下一个语句以获取容器div的innerHTML,并获取我视图的旧快照。如果模型完成赋值并且视图已刷新,我怎样才能执行我的语句?
答案 0 :(得分:1)
您应该将代码包装在$timeout
中。这将确保您的代码在下一个周期执行,您将获得最新的快照。
$timeout(function(){
<your code to get innerHtml>
})
没有必要提及任何超时值,因为一旦视图发生变化就会调用
PS:添加$timeout
作为依赖。
答案 1 :(得分:0)
我会使用角度的ng-show并仅在数据加载到控制器中时显示你的内容:
HTML:
<div ng-app="myApp" ng-controller="myCtrl" data-ng-init="getValues()">
<div ng-show="dataLoaded">
<input type="number" ng-repeat="(key, value) in randomArray track by $index" ng-model="randomArray[key]">
</div>
</div>
CONTROLLER:
.controller('myCtrl', function($scope) {
$scope.getValues = function() {
$scope.randomArray = ['myKey', 'anotherKey', 'thirdKey', 'key4'];
angular.forEach($scope.randomArray, function(value, key){
$scope.randomArray[key] = 0;
});
// Set dataLoaded to true
$scope.dataLoaded = true;
}
});