我們都知道,chosen更新值的代碼是這個
$(xxx).trigger("chosen:updated");//新版
$(xxx).trigger("liszt:updated");//舊版
通常來說,如果用的是jq,那么在append以后,直接跟上上面的代碼以后,chosen的值就會同步更新了。
但是!但是!但是!如果用的是angular,那么分為兩種情況:
1、在當前angular的上下文中動態添加或修改了值,一般是用ng-repeat,此時在后面加上上面的代碼即可。
2、不在當前angular的上下文中動態添加或修改了值,那么直接在后面加上上面的代碼,是無效的!!!,因為chosen的值是根據select標簽的值來更新的,而select標簽的值是受angular的ng-repeat影響的,如果沒有把值在angular中更新的話,只在chosen中更新值是沒有任何作用的。因此,我們在非angular的上下文中修改了值以后,需要加上下面的代碼把值在angular中更新一下:
$scope.$apply();