<span style="font-size:18px;"><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../angular.js"></script>
</head>
<body>
<div ng-app="s9.app">
<div ng-controller="MainController">
<div><span ng-bind="name"></span></div>
<div><input type="text" ng-model="name"></div>
<hr>
<div ng-controller="SubController">
<input type="text" ng-model="name">
</div>
</div>
</div>
<script>
var app = angular.module('s9.app', []);
app.controller('MainController', function ($scope) {
$scope['name'] = 'Main Controller Name';
});
app.controller('SubController', function ($scope) {
})
</script>
</body>
</html></span>
<span style="font-size:18px;">以上代码出现bug,由于作用域的问题,改变第二个input输入框里的内容(</span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 18px;">在SubController的作用域</span><span style="font-size:18px;">)</span><span style="font-size:18px;">,<span style="font-family: Arial, Helvetica, sans-serif;">MainController作用</span></span>
<span style="font-size:18px;"><span style="font-family: Arial, Helvetica, sans-serif;"></span></span><pre name="code" class="html"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">域</span>的</span><span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;">内容不会改变,不能实现双向绑定。因为AngularJs是原型链的实现机制,因此改变外边的内容不能改变内部的</span>
<span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;">内容。要实现双向绑定,就需要解决控制器数据的储存方式。</span>
<span style="font-size:18px;">bug的解决:</span>
<pre name="code" class="html"><span style="font-size:18px;"><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../angular.js"></script>
</head>
<body>
<div ng-app="s9.app">
<div ng-controller="MainController">
<div><span ng-bind="data.name"></span></div>
<div><input type="text" ng-model="data.name"></div>
<hr>
<div ng-controller="SubController">
<input type="text" ng-model="data.name">
</div>
</div>
</div>
<script>
var app = angular.module('s9.app', []);
app.controller('MainController', function ($scope) {
// $scope['name'] = 'Main Controller Name';
$scope['data'] = {
name : 'Main Controller Name'
}
});
app.controller('SubController', function ($scope) {
})
</script>
</body>
</html></span>
<span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;">
</span>