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前

点击button后,

![点击button后](http://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>

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

你可能感兴趣的:(angular中的作用域与原型继承)