官术网_书友最值得收藏!

Scope

Data binding in AngularJS is achieved using the scope object. We can attach properties to it and explicitly declare in the template that we want to bind to these properties (one- or two-way). Although the idea of the scope seems clear, it has two more responsibilities, including event dispatching and the change detection-related behavior.

Angular beginners have a hard time understanding what scope really is and how it should be used. AngularJS 1.2 introduced something called controller as syntax. It allows us to add properties to the current context inside the given controller (this), instead of explicitly injecting the scope object and later adding properties to it. This simplified syntax can be demonstrated through the following snippet:

<div ng-controller="MainCtrl as main"> 
  <button ng-click="main.clicked()">Click</button> 
</div>
function MainCtrl() { 
  this.name = 'Foobar'; 
} 
MainCtrl.prototype.clicked = function () { 
  alert('You clicked me!'); 
}; 

The latest Angular took this even further by removing the scope object. All the expressions are evaluated in the context of the given UI component. Removing the entire scope API introduces higher simplicity; we don't need to explicitly inject it anymore, instead, we add properties to the UI components to which we can later bind. This API feels much simpler and more natural.

We will take a more detailed look at the components and the change detection mechanism of Angular in Chapter 5, Getting Started with Angular Components and Directives.

主站蜘蛛池模板: 泊头市| 鹤壁市| 元阳县| 寿宁县| 阿勒泰市| 鄂伦春自治旗| 大渡口区| 厦门市| 鹤壁市| 襄汾县| 本溪| 象州县| 青冈县| 化德县| 永仁县| 邵武市| 镇原县| 汶川县| 彭泽县| 山东省| 扶风县| 霍邱县| 台南市| 济宁市| 平南县| 牡丹江市| 连州市| 寻甸| 鱼台县| 鄂温| 余干县| 康定县| 安乡县| 昌宁县| 睢宁县| 利川市| 开封市| 肇庆市| 焦作市| 兖州市| 宁阳县|