Tentukan modul sedemikian dan gunakan ngRoute asli angular
var app = angular.module('NewsPub', ['ngRoute']);
//配置路由,controller为下面定义的AddController
app.config['$routeProvider', function($routeProvider) {
$routeProvider.when('/add', {templateUrl: add.html,controller: 'AddController'});
}
app.controller('AddController',function($scope){
$scope.title = '';
var a = {prop: $scope.title};
$scope.add = function(){
console.dir(a);
}
});
Pada nilai dengan id add.html
的ng-template使用了ng-model绑定了$scope
中title
, dan tetapkan butang untuk mengikat acara tambah()
<input type="text" ng-model="title" value="标题">
<span>{{title}}</span>
<button ng-click="add()">Btn</button>
Sekarang datang masalah, seperti yang ditunjukkan dalam rajah di bawah, tukar nilai dalam kotak input
框内的值,<span>
内的值会跟着改变,这说明数据有存在双向绑定,即$scope.title
会随着input
.
Namun, walau macam mana pun ia berubahinput
框内的值,点击button
内触发add()事件时,控制台输出的a
对象的prop
属性永远是$scope.title的初始值''
( tidak akan berubah apabila nilai tajuk berubah)
Sila minta tuan untuk membantu saya, saya seorang pemula dan saya tidak dapat memikirkannya setelah sekian lama, saya bersyukur tidak terhingga!
Input pada halaman anda terikat pada $scope.title, bukan a.prop anda . Kemudian tetapkan nilai kepadanya, jadi nilai itu akan sentiasa menjadi nilai yang anda tetapkan pada mulanya, iaitu "".
Ini ialah masalah rujukan berubah
`$scope.title = '';
Mencipta dua rujukan sifat objek kepada
''
的引用,你改变了$scope.title
的值,就是断掉了$scope.title
的引用,但是a.prop
依然保持对''
Adalah disyorkan untuk membaca artikel Memahami Skop AngularJS.