angular中的作用域与原型继承

<div ng-controller="parent" ng-init="firstName='John'">
  {{firstName}}    
  <div ng-controller="child">
     {{firstName}}        
    <button ng-click="firstName='Jack'">
      改变firstname
    </button>    
  </div>
</div>

点击button前,

![点击button前](//upload-images.jianshu.io/upload_images/1306708-ff821e2e11caf247.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
点击button后,
![点击button后](//upload-images.jianshu.io/upload_images/1306708-740a03cf8466fe33.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
可见,在子作用域中改变父作用域的变量会在子作用域中创建一个新变量。这是因为子作用域是用原型继承的方式继承了父作用域的变量。我们知道,我们可以在对象中使用其原型中的变量,但如果对其赋值,就会在此对象的作用域中新建一个变量。
<div ng-controller="parent" ng-init="firstName='John'">
  {{firstName}}    
  <div ng-controller="child">
     {{firstName}}        
    <button ng-click="$parent.firstName='Jack'">//angular中的写法
      改变firstname
    </button>    
  </div>
</div>

这样就可以在子作用域中改变父的变量。其他的方式还有很多,以后再写。

posted @ 2015-12-07 16:45  李星星**  阅读(267)  评论(0)    收藏  举报