Angular JS学习笔记(控制器、作用域)

Angular JS 控制器

在Angular中,如果在DOM中使用ng-controller指令添加了控制器,ng会调用该控制器构造函数生成一个控制器对象,创建了一个作用域($scope)

控制器有两个作用:

  • 初始化$scope对象
  • 为$scope对象添加行为/方法、

初始化$scope对象

    var myApp = angular.module('myApp',[]);
 
    myApp.controller('GreetingCtrl', ['$scope', function($scope) {
        $scope.greeting = 'Hello!';
    }]);

我们推荐先声明模块,在模块下定义controller,用内联注入的方式注入scope依赖。

ng-controller指令会创建一个新的$scope作用域,所以我们在显示弹窗的情景下,若有多个父页面使用同一个弹窗页面代码,需要考虑controller,作用域的问题,作用域不同,即使是同名变量,在某一作用域所做的修改不会影响它在其他地方的值。

$Scope作用域

在Angular JS中,子作用域通常在原型上从其父作用域继承而来。
而在定义可重用组件时,我们会声明scope为{…},这样我们会创建一个典型的非继承作用域。

这和java的继承很相似,如果set该作用域的属性,就会重写,否则就会直接继承父作用域的属性,当然我们也可以使用$parent来获取父作用域的属性。

值得注意的一点,我们应该习惯使用对象。
比如我们想使用一个属性,我们先声明一个对象,将该属性声明为该对象的属性。
我们在子作用域修改父作用域的变量时,会自动生成一个作用范围,而在修改对象的属性时,ng-model在寻找对象时,原型继承就会起作用了,会找到父作用域中的对象以及属性

总的来说,绑定对象中的属性,就会避免子作用域覆盖父作用域的问题了。

这篇写的超好,大家看一下
@@@@@ 作用域详解@@@

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值