在我的角度项目中,我更喜欢使用单向绑定来实现这样的性能
<div>
<p ng-bind="::vm.user.name"></p>
<p ng-bind="::vm.user.email"></p>
<!-- other bindings -->
</div>
但是当视图项发生更改时,必须重新呈现DOM才能显示新值。所以我使用ng-if。所以它看起来像
<div ng-if="vm.user">
<p ng-bind="::vm.user.name"></p>
<p ng-bind="::vm.user.email"></p>
<!-- other bindings -->
</div>
为了重新渲染DOM,我使用了一个函数
function updateUser(user){
vm.user = null;
$timeout(function(){
vm.user = user;
});
}
此渲染方法有效,但每个项目更新都有渲染成本。另一种方法是在没有ng-if的情况下使用双向绑定,但这种绑定会创建观察者并导致性能问题。
<div>
<p ng-bind="vm.user.name"></p>
<p ng-bind="vm.user.email"></p>
<!-- other bindings -->
</div>
我不能在两种方法之间做出决定。哪一个对最好的表现有好处?谢谢你的帮助。
答案 0 :(得分:0)
实际上,如果你的模型不会改变,请使用单向数据绑定,否则更喜欢使用双向数据绑定来保持一致性和简单性。由于ngIf指令也使用$ scope.watch,因此性能下降