angular.js - 使用angularjs,如何在document ready中修改model,并且使得与model绑定的dom被更新?
怪我咯
怪我咯 2017-05-15 16:50:52
0
2
563

下面的例子中,model被修改了,但是界面没被更新
例子:
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