angularJS<四、多个Controller的作用域>

angularJs的作用域是针对于在html页面里面引入ng-Controller的位置来说的,angularjs的controller和javaScript的作用域很类似;如:

         <divng-controller="controllerDemo">

            <inputtype="text"ng-model="name"value="">

            <divng-controller="controllerDemo2">

            <inputtype="text"ng-model="name"value="">

            </div>

   </div>

内部的controllerDemo2的作用域可以访问到外部controllerDemo作用域的mode(既属性)如果内部的controllerDemo2的$scope作用域没有定义name时候回会直接访问到外部controllerDemo作用域的name;一但内部controllerDemo2的$scope作用域,定义了name,那就不能访问到外部controllerDemo的 name了;

然而外部的controllerDemo任何时候都不能能访问内部controllerDemo2的;

 

不说那么多,来,我们上代码

例子一、

Controller.js中代码

var controllerDemo=function($scope){

   //申明一个model

   $scope.name="小明";

   $scope.sex="";

}

var controllerDemo2=function($scope){

 

}

html中代码:

         <divng-app="">

         <divng-controller="controllerDemo">

                <inputtype="text"ng-model="name"value="">

            <divng-controller="controllerDemo2">

                <inputtype="text"ng-model="name"value="">

            </div>

         </div>

      </div>

跑起来结果


可以看出,虽然controllerDemo2中未定义name ,但是他拿到了外面controllerDemo中name的值;

我们在input中修改外面controllerDemo的内容


发现内部controllerDemo2的input内容值跟着修改了;再次说明也是取到,取到了外部的name值

我们修改controllerDemo2的input值

再到上面输入

而外围的input值并未跟着改变,这是为什么?而且这时我们再去上面input标签中输入,内部也不会跟着修改了!这时为什么?

因为当我们在controllerDemo2的input中输入内容的时候,则在controllerDemo2的Controller中定义了name属性,所以相互不在受到影响;

 

 

例子二、

         和例子一相差不大,只需要将Controller.js中代码中的代码

var controllerDemo2=function($scope){

 

}

         修改为

var controllerDemo2=function($scope){

         $scope.name="张三";

}

然后我们在去修改input中的值,发现互相都不再受影响;说明一但内部controllerDemo2的$scope作用域,定义了name,那就不能访问到外部controllerDemo的name了。

 

是不是很简单,各位亲!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值