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