anchor.diff:      a technique that is beyond the scope of this chapter.
   
       `ngModel`输入属性设置元素的值属性，而`ngModelChange`输出属性监听元素值的变化。
  -    细节由每种元素自行实现，`NgModel`指令只和元素一起工作，比如输入框，它由[ControlValueAccessor](../api/common/ControlValueAccessor-interface.html)提供支持。
  +    实现细节对每种元素都很特定，所以`NgModel`指令只和元素一起工作，比如输入框，它由[ControlValueAccessor](../api/common/ControlValueAccessor-interface.html)提供支持。
       除非写一个合适的*值访问器*，否则我们不能把`[(ngModel)]`用在我们自己的自定义组件上。但*值访问器*技术超出了本章的范围。
   :marked
     Separate `ngModel` bindings is an improvement. We can do better.
  
positive.code:   It destroys components in the subtree, along with their state, potentially freeing up substantial resources and
    resulting in better performance for the user.
    
    当`NfIf`为`false`时，Angular从DOM中实际移除了这个元素的子树。
    它销毁了子树中的组件及其状态，也潜在释放了可观的资源，最终让用户体验到更好的性能。
  
    The show/hide technique is probably fine for small element trees.
  
negative.code:   The directive calls `EventEmitter.emit(payload)` to fire an event, passing in a message payload that can be anything.
    Parent directives listen for the event by binding to this property and accessing the payload through the `$event` object.
    
    指令使用典型的Angular[EventEmitter](../api/core/EventEmitter-class.html)来触发自定义事件。
    指令创建一个`EventEmitter`实例，并且把它作为一个属性暴露出来。
    指令调用`EventEmitter.emit(payload)`来触发事件，传进去的消息载荷可以是任何东西。
    父指令通过绑定到这个属性来监听这个事件，并且通过`$event`对象来访问这个载荷。
  