javascript - Help Angular 1 Mengapa memberikan nilai kepada sifat objek dalam $scope tidak berfungsi (masalah skop), terima kasih tanpa henti!
巴扎黑
巴扎黑 2017-05-16 13:20:13
0
3
573

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绑定了$scopetitle, 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!

巴扎黑
巴扎黑

membalas semua(3)
迷茫

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 = '';

var a = {prop: $scope.title};`

Mencipta dua rujukan sifat objek kepada ''的引用,你改变了$scope.title的值,就是断掉了$scope.title的引用,但是a.prop依然保持对''

迷茫

Adalah disyorkan untuk membaca artikel Memahami Skop AngularJS.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!