jquery-ui - $scope.slider - 未更新

标签 jquery-ui angularjs angular-ui

我有一个 jquery-ui slider ,它使用 slider 的值更新文本框。

文本框具有 ng-model,因此我可以从 Controller 获取值 - 但移动 slider 后该值不会更新(该值在文本框中视觉上发生变化,但 $scope.slider 保持不变)。

如果我在文本框中手动更改值,一切都会按预期工作,并且 $scope.slider 的值将更新为新值。

有没有办法让 slider 也更新范围的值?

   <input type="text" id="rent"  ng-model="rent" style="border: 0; color: #f6931f; font-weight: bold;" />
  <div id="slider-rent" style="width: 80%;"></div>

  $("#slider-rent").slider({
        range: false,
        min: 0,
        max: 20000,
        step: 10,
        value: 0,
        slide: function (event, ui) {
            $("#rent").val(ui.value);
        }
    });
    $("#rent").val($("#slider-rent").slider("value"));
    $("#rent").change(function () {

        $("#slider-rent").slider("value", $("#rent").val());
    });

(这是一个 RTL slider ,这就是值为负数的原因)

最佳答案

最好将 slider 代码放入 Angular 指令中,以便您可以访问 Controller 范围。

但是,如果您在输入元素上触发输入事件,它将更新 Angular 模型

function updateInputValue( newVal){
     $("#rent").val(newVal).trigger('input');    
}

$(function () {
    $("#slider-rent").slider({
        range: false,
        min: 0,
        max: 20000,
        step: 10,
        value: 0,
        slide: function (event, ui) {
            updateInputValue(ui.value);
        }
    });
    updateInputValue($("#slider-rent").slider("value"));
    $("#rent").change(function () {
        $("#slider-rent").slider("value", $("#rent").val());
    });
})

演示:http://jsfiddle.net/zwHQs/

关于jquery-ui - $scope.slider - 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15179108/

相关文章:

jQuery。 ASP.NET MVC 3. 日期选择器错误?

JQuery Datepicker不同实例的不同样式

javascript - Angularjs - 动态页面,相同的模板,如何通过 id 访问和加载文章

angularjs - 模态窗口问题(未知提供程序 : ModalInstanceProvider)

javascript - HTML5 Canvas 改变图像颜色

javascript - 解析 dom 元素时 JqueryUI slider 不工作

angularjs - 将指令注入(inject) Controller

angularjs - 使用工厂响应 UI Bootstrap Datepicker 禁用日期

angularjs - 如何将 Angular 指令添加到完整日历事件

javascript - $watch 在 Angular Modal 中不工作