国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

下面的例子中,model被修改了,但是界面沒(méi)被更新
例子:
http://jsbin.com/relanafohu/4/edit

怪我咯
怪我咯

走同樣的路,發(fā)現(xiàn)不同的人生

Antworte allen(2)
洪濤

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

僅有的幸福

所有非Angular可知的異步操作回調(diào)中的 model 修改都需要使用 apply 方法來(lái)顯性地通知angular進(jìn)行視圖的更新,具體看 angular關(guān)于 apply 的文檔。

另外如果 angular 正在進(jìn)行一次更新的過(guò)程中(digest circle),apply被調(diào)用,那么會(huì)出現(xiàn)下面這樣的報(bào)錯(cuò):

Error: $apply already in progress

為了避免出現(xiàn)這個(gè)錯(cuò)誤,你可以先判斷當(dāng)前的狀態(tài),可以直接使用下面這個(gè)封裝好的方法:

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

當(dāng)你需要設(shè)置model的時(shí)候只需要:

jssafeApply( $scope, function(){
    // 在這里寫(xiě)你修改model的代碼
});

關(guān)于這個(gè)錯(cuò)誤的更多細(xì)節(jié)可以查看這個(gè) stackoverflow 上的問(wèn)題

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage