angular.js - Menggunakan angularjs, bagaimana untuk mengubah suai model dalam dokumen sedia dan membuat DOM terikat kepada model dikemas kini?
怪我咯
怪我咯 2017-05-15 16:50:52
0
2
584

Dalam contoh berikut, model telah diubah suai, tetapi antara muka belum dikemas kini
Contoh:
http://jsbin.com/relanafohu/4/edit

怪我咯
怪我咯

走同样的路,发现不同的人生

membalas semua(2)
洪涛

https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply

仅有的幸福

Semua pengubahsuaian model dalam panggilan balik operasi tak segerak yang tidak diketahui oleh Angular perlu menggunakan kaedah guna untuk memberitahu sudut secara eksplisit untuk mengemas kini paparan Untuk butiran, lihat dokumentasi sudut tentang penggunaan.

Selain itu, jika sudut sedang dalam proses mengemas kini (bulatan digest) dan memohon dipanggil, ralat berikut akan muncul:

Error: $apply already in progress

Untuk mengelakkan ralat ini, anda boleh menentukan status semasa dahulu dan anda boleh terus menggunakan kaedah terkapsul berikut:

jssafeApply = function( scope, fn) {
    var phase = scope.$root.$$phase;
    if(phase == '$apply' || phase == '$digest') {
        if(fn && (typeof(fn) === 'function')) { fn();
        }
    } else {
        scope.$apply(fn);
    }
}

Apabila anda perlu menetapkan model, cuma:

jssafeApply( $scope, function(){
    // 在这里写你修改model的代码
});

Maklumat lanjut tentang ralat ini boleh didapati dalam soalan stackoverflow ini

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan