Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 不切实际的是';t从jQueryUIDatePicker捕获更改_Jquery Ui_Ractivejs - Fatal编程技术网

Jquery ui 不切实际的是';t从jQueryUIDatePicker捕获更改

Jquery ui 不切实际的是';t从jQueryUIDatePicker捕获更改,jquery-ui,ractivejs,Jquery Ui,Ractivejs,我使用jQueryUI的datepicker和一个实用的模板,双向绑定似乎不能正常工作 我的输入如下所示: <input type="text" value="{{value}}" decorator="picker"> <input type="text" value="{{value}}" as-picker> datepicker显示得很完美,但值没有正确更新。如果我在{{value}}上通过并观察,我看到Ractive认为一旦datepicker设置了值,该值

我使用jQueryUI的datepicker和一个实用的模板,双向绑定似乎不能正常工作

我的输入如下所示:

<input type="text" value="{{value}}" decorator="picker">
<input type="text" value="{{value}}" as-picker>
datepicker显示得很完美,但值没有正确更新。如果我在{{value}}上通过并观察,我看到Ractive认为一旦datepicker设置了值,该值就不会改变。如果我在字段中单击,然后再次后退(失去焦点),观察者将触发,并设置值

在我的decorator中,我可以使用datepickers“onSelect”事件设置一个回调来触发,但是如何从decorator函数强制执行一个实际的更改事件呢

decorators: {
    picker: function(node) {
        $(node).datepicker({
                onSelect: function(dateValue) {
                    console.log("datevalue set");
                    //I've tried this already
                    $(node).change();
                    //and
                    $(node).trigger("change");
                    //neither work
                }
        });
        return {
            teardown: function() {
                $(node).datepicker("destroy");
            }
        };  
    },
}

在decorator函数中,
引用当前的ractive实例,因此您可以调用
ractive.updateModel()
让它知道需要根据视图更新模型:

decorators: {
    picker: function(node) {
        var ractive = this
        $(node).datepicker({
                onSelect: function(dateValue) {
                    ractive.updateModel()
                }
        });
        return {
            teardown: function() {
                $(node).datepicker("destroy");
            }
        };  
    },
}
(见附件)


编辑 当前版本的ractive使用as-*约定作为装饰器,您应该如下编辑html:

<input type="text" value="{{value}}" decorator="picker">
<input type="text" value="{{value}}" as-picker>

在decorator函数中,
引用当前的ractive实例,因此您可以调用
ractive.updateModel()
让它知道需要根据视图更新模型:

decorators: {
    picker: function(node) {
        var ractive = this
        $(node).datepicker({
                onSelect: function(dateValue) {
                    ractive.updateModel()
                }
        });
        return {
            teardown: function() {
                $(node).datepicker("destroy");
            }
        };  
    },
}
(见附件)


编辑 当前版本的ractive使用as-*约定作为装饰器,您应该如下编辑html:

<input type="text" value="{{value}}" decorator="picker">
<input type="text" value="{{value}}" as-picker>


ractive不再使用类似的装饰器属性。但是martypdx的建议让我走上了正确的方向

$(函数(){
var r=新的不可复制的({
el:document.body,
模板:“#模板”,
数据:{
值:null
},
装饰师:{
选择器:函数(节点){
变量=这个
$(节点).日期选择器({
日期格式:'年-月-日',
onSelect:函数(日期值){
practive.updateModel()
}
});
返回{
拆卸:函数(){
$(节点).datepicker(“销毁”);
}
};  
},
}
})
})

值:{{value}}


ractive不再使用类似的装饰器属性。但是martypdx的建议让我走上了正确的方向

$(函数(){
var r=新的不可复制的({
el:document.body,
模板:“#模板”,
数据:{
值:null
},
装饰师:{
选择器:函数(节点){
变量=这个
$(节点).日期选择器({
日期格式:'年-月-日',
onSelect:函数(日期值){
practive.updateModel()
}
});
返回{
拆卸:函数(){
$(节点).datepicker(“销毁”);
}
};  
},
}
})
})

值:{{value}}


这是当前的属性约定,但我认为如果您对以前的答案提出仍然正确的版本会更好:)这是当前的属性约定,但我认为如果您对以前的答案提出仍然正确的版本会更好:)