浅谈angularJS 作用域


<!doctype html>
<html ng-app="firstApp">
<head>
<meta charset="utf-8">
<script src="angular-1.3.0.js"></script>
</head>
<body>

<div ng-controller="parentCtrl">
<input ng-model="args">
<div ng-controller="childCtrl">
<input ng-model="args">
</div>
</div>
<script>
var app=angular.module('firstApp',[]);
app.controller('parentCtrl',function($scope) {
$scope.args = '123';
}).controller('childCtrl', function($scope) {

});
</script>

案例说明:

虽然在 childCtrl 中没有定义具体的 args 属性,但是因为 childCtrl 的作用域继承自 parentCtrl 的作用域,

因此,childCtrl通过原型链 到父作用域args 属性并设置到input中。且在父input中输入值自己动同步到子input中
但是反之不行。即子中修改,无法改变父中的值,且导致父修改后子也不同步了,原因:在子作用域input输入内容时,
因为 HTML 代码中 model 明确绑定在 childCtrl 的作用域中,因此 AngularJS 会为 childCtrl 生成一个 args 原始类型属性。
根据 AngularJS 作用域继承原型机制,childCtrl 在自己的作用域找到args属性值,故就不从父中查找args值。
导致最终子作用域有args,父作用域有args,子和父之间的值不会再保持同步。

以上所述就是本文的全部内容了,希望大家能够喜欢。



相关阅读:
javascript eval(func())使用示例
C语言实现斗地主的核心算法
PHP中使用break跳出多重循环代码实例
SQLite教程(五):数据库和事务
详解ASP.NET验证码的生成方法
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
C#巧用DateTime预设可选的日期范围(如本年度、本季度、本月等)
Mac如何使用磁盘工具给现有文件夹加密
Android中监听系统网络连接打开或者关闭的实现代码
C++实现旋转数组的二分查找
dmg文件是什么Linux如何通过命令行建立dmg文件
win7系统下右下角弹出Awc.exe 损坏文件警告该怎么办?
C语言中对于循环结构优化的一些入门级方法简介
input文本框和img验证码对齐问题(img总比input高出一个头)
快速导航

Copyright © 2016 phpStudy |