如何在长HTTP请求之后更新DOM而不与Angular中的$ scope有任何关系

时间:2015-05-26 15:43:16

标签: javascript angularjs dom

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

1 个答案:

答案 0 :(得分:0)

如果您不想使用$scope在控制器和视图之间架起桥梁,可以使用controller as语法:

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

在您的控制器中,最好将this绑定到self或您将识别的其他var,以便稍后可以引用它们。您可以使用this,但如果不将其绑定到var,则可能会让您感到困惑和复杂。

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

我不确定这种模式是否会让你习惯于角度2,但有些人认为这是一种更好的角度编码方式。

如果由于某种原因你需要点燃$ digest,我认为普遍接受的hacky方式是当你需要触发$ digest时运行$ timeout。 $ timeout固有地调用一个。

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

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