如何在一个很长的HTTP请求之后更新DOM,而不用在Angular中使用$scope

How to update the DOM after a long HTTP request without anything to do with $scope in Angular

本文关键字:DOM 更新 Angular scope 之后 请求 一个 HTTP      更新时间:2023-09-26

在Angular中,我们可以使用$apply或$digest来更新DOM。然而,我想在不使用$scope的情况下练习编码,以便更容易适应Angular 2,但我不知道如何更新HTTP请求后的DOM !!

如果你不想使用$scope来连接你的控制器和视图,你可以使用controller as语法:

<body ng-controller="MainCtrl as main">
  <p>Hello {{main.name}}!</p>
</body>

在您的控制器中,将this绑定到self或其他一些您将识别的变量是很好的做法,以便您可以稍后引用它们。你可以使用this,但如果你不把它绑定到一个变量,它会变得混乱和复杂。

app.controller('MainCtrl', function($scope) {
  var self = this;
  self.name = 'test'
});

我不确定这种模式是否能让你习惯angular 2,但有些人认为这是在angular中编写代码的更好方式。

如果出于某种原因你需要触发$digest,我认为通常被接受的hack方法是在你需要触发$digest时运行$timeout。$timeout固有地调用一个

$timeout(function(){},0);

如果我需要关注一些变化的数据,我可能会设置一个$watch。