关于angular+chosen动态添加值以后trigger:update不更新值的问题
我们都知道,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();