Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 函数结果的角度绑定_Angular_Watch_Angularjs Digest - Fatal编程技术网

Angular 函数结果的角度绑定

Angular 函数结果的角度绑定,angular,watch,angularjs-digest,Angular,Watch,Angularjs Digest,我一直在浏览angular.io上的指南,发现了。 在提供的示例中,ngClass的源是一个组件函数: //HTML 此div是可保存且特殊的 //控制器 setClasses(){ 让类={ 可保存:this.canSave,//true 修改:!this.isUnchanged,//false 特别:this.isSpecial,//正确 }; 返回类; } 这是否会在摘要周期中产生较大的开销 该指令不知道函数的结果何时更改,以及 是否会在每个摘要周期中触发新的功能评估?在里面 相比之下,

我一直在浏览angular.io上的指南,发现了。 在提供的示例中,ngClass的源是一个组件函数:

//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的开发者更容易理解它的意思。