根据我的知识,当我们将一个变量附加到范围时,会对其应用监视并在每个摘要循环中检查它.一个好的经验法则是,我们不应该在给定的时间内观察超过2000个变量.
我的问题是如何从范围中删除已存在的变量.例如,$scope.var1=1我说我必须创建它一次性使用.我是否有可能从范围中"删除"它或者是否会在范围的生命周期内观察变量?
编辑:
从下面的评论中我了解到你应该手动移除手表,否则当范围被破坏时它们会被销毁.但是我仍然不清楚如何删除由ngModel等指令设置的变量的监视?
在阅读ViewContainerRef和ComponentFactory的文档时,例如我们有方法
ViewContainerRef#createComponent包含3个参数:componentFactory,injector和projectableNodes.
我已经尝试查找projectableNodes它们在博客,教程和源代码中使用的含义和方式,但找不到多少.
在查找用于ngComponentOutlet指令的diff时,我可以收集的是,projectableNodes中的字符串被"投影"或呈现在创建的组件视图上(如ng-content可能).如果是这样会让人感到困惑,因为我们有相同的ViewContainerRef#createEmbeddedView.
我想知道这些是什么,projectedNodes并举例说明它们的用法.
我Type在文档中的许多地方都遇到了关键字.例如这里看到 ComponentRef有componentType 属性.它据说是类型Type<any>.在进一步搜索时,我在文档中找到关于它的这个条目.它说:调用ES7装饰器.
另外在查找github 上的源代码时,我发现这些评论:
/**
* @whatItDoes Represents a type that a Component or other object is instances of.
*
* @description
*
* An example of a `Type` is `MyCustomComponent` class, which in JavaScript is be represented by
* the `MyCustomComponent` constructor function.
Run Code Online (Sandbox Code Playgroud)
但是我仍然不清楚是什么Type.我错过了什么基本的??