gpt4 book ai didi

AngularJS UniformJS 选择控件未更新

转载 作者:行者123 更新时间:2023-12-04 16:31:36 24 4
gpt4 key购买 nike

我正在使用 AngularJS 和 UniformJS 构建一个应用程序。我想在 View 上有一个重置按钮,可以将我的选择重置为其默认值。如果我使用uniform.js,它就不起作用。

你可以在这里检查它:

http://plnkr.co/edit/QYZRzlRf1qqAYgi8VbO6?p=preview

如果您连续单击重置按钮,则没有任何 react 。
如果您删除该属性,因此不再使用uniform.js,一切都会正确运行。

谢谢

更新:

需要使用超时。

app.controller('MainCtrl', function($scope, $timeout) {
$scope.reset = function() {
$scope.test = "";
$timeout(jQuery.uniform.update, 0);
};
});

最佳答案

找到了。为了完整起见,我在这里复制我的评论:

看起来 Uniform 真的很hacky。它覆盖了实际的 select 元素,并改为显示 span。 Angular 正在工作。实际的 select 元素的值正在改变,但 Uniform 显示的跨度没有改变。

所以你需要告诉 Uniform 你的值已经改变了 jQuery.uniform.update . Uniform 从实际元素中读取值并放置在 span 中,而 angular 直到摘要循环之后才会更新实际元素,因此您需要稍等片刻才能调用 update:

app.controller('MainCtrl', function($scope, $timeout) {
$scope.reset = function() {
$scope.test = "";
$timeout(jQuery.uniform.update, 0);
};
});

或者,您可以将其放在您的指令中:
app.directive('applyUniform',function($timeout){
return {
restrict:'A',
require: 'ngModel',
link: function(scope, element, attr, ngModel) {
element.uniform({useID: false});
scope.$watch(function() {return ngModel.$modelValue}, function() {
$timeout(jQuery.uniform.update, 0);
} );
}
};
});

关于AngularJS UniformJS 选择控件未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18215366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com