Angular 函数结果的角度绑定
我一直在浏览angular.io上的指南,发现了。 在提供的示例中,ngClass的源是一个组件函数:Angular 函数结果的角度绑定,angular,watch,angularjs-digest,Angular,Watch,Angularjs Digest,我一直在浏览angular.io上的指南,发现了。 在提供的示例中,ngClass的源是一个组件函数: //HTML 此div是可保存且特殊的 //控制器 setClasses(){ 让类={ 可保存:this.canSave,//true 修改:!this.isUnchanged,//false 特别:this.isSpecial,//正确 }; 返回类; } 这是否会在摘要周期中产生较大的开销 该指令不知道函数的结果何时更改,以及 是否会在每个摘要周期中触发新的功能评估?在里面 相比之下,
//HTML
此div是可保存且特殊的
//控制器
setClasses(){
让类={
可保存:this.canSave,//true
修改:!this.isUnchanged,//false
特别:this.isSpecial,//正确
};
返回类;
}
这是否会在摘要周期中产生较大的开销
该指令不知道函数的结果何时更改,以及
是否会在每个摘要周期中触发新的功能评估?在里面
相比之下,我希望下面的代码提供相同的功能
但仅当其中一个观察值
已更改(可以保存、未更改、特殊)
此div可保存且特殊
有人能解释一下我应该考虑些什么吗
优化性能?一个示例用例是打开这个ngClass
在可见页面上创建约200个元素的ngRepeat
作为一个旁侧节点和较小的问题,我想知道是否有任何好处
学习一次性绑定的资源(在angular2和angular1中)。这个
指南似乎没有涵盖这一点,我希望有一个异步的
时间绑定在angular2中可用
考虑到指令不知道函数的结果何时发生变化,并且会在每个摘要周期中触发函数的新评估,这是否会在摘要周期中产生大量开销?相比之下,我希望下面的代码提供相同的功能,但仅在观察到的值之一发生更改时(canSave、isUnchanged、isSpecial)才进行重新评估
你的结论是正确的
setClasses
方法为每个调用返回一个不同的实例,这使得在ngClass
中进行比较更加昂贵。如果在没有更改依赖项的情况下返回相同的实例,则绑定到此方法
路很好
这一问题最近得到了解决
作为一个次要的问题,我想知道是否有什么好的资源可以学习一次性绑定(angular2和angular1)。指南似乎没有涵盖这一点,我希望angular2中有一个异步一次性绑定
Angular2不支持一次性绑定。Ah。谢谢你的澄清!上周我遇到了这个问题,但没有意识到它已经调整好了。以前在angular的经验告诉我要始终考虑性能,这可能是一个主要的陷阱。正是因为如此,他们才改变了它。答案补充得很晚,但angular本身并没有一个消化周期。它使用区域进行独立的变化检测。你说得对。它应该是“变更检测”,但这是一句引语,我想“摘要周期”只是用来让来自Angular1的开发者更容易理解它的意思。