Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/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
Knockout.js 将knockoutjs对象移动到弹出式编辑表单中_Knockout.js - Fatal编程技术网

Knockout.js 将knockoutjs对象移动到弹出式编辑表单中

Knockout.js 将knockoutjs对象移动到弹出式编辑表单中,knockout.js,Knockout.js,我让我的Web服务使用knockoutjs将json呈现提供给一组嵌套的标记。(效果很好) 所以我现在要做的是有一个弹出编辑窗口(已经用KendoUI\jquery设置)来更改值 但问题是,我不知道我是否出去吃午饭,这甚至是可能的……您如何将绑定对象传递给其他对象以处理编辑?我在代码中执行类似操作: 在我的viewModel中,我创建了登录函数的一个实例: this.loginDialog = ko.observable(new LoginDialog(this)); 定义如下: fu

我让我的Web服务使用knockoutjs将json呈现提供给一组嵌套的标记。(效果很好)

所以我现在要做的是有一个弹出编辑窗口(已经用KendoUI\jquery设置)来更改值


但问题是,我不知道我是否出去吃午饭,这甚至是可能的……您如何将绑定对象传递给其他对象以处理编辑?

我在代码中执行类似操作:

在我的viewModel中,我创建了登录函数的一个实例:

    this.loginDialog = ko.observable(new LoginDialog(this));
定义如下:

function LoginDialog(viewModel) {
    var self = this;
    this.viewModel = viewModel;

    this.userid = ko.observable();
    this.password = ko.observable();
    this.open = ko.observable(false);
    this.message = ko.observable();

    // more here
}
然后我有一个名为
dialog
的绑定:

ko.bindingHandlers.dialog = {
    init: function(element, valueAccessor, allBindingsAccessor) {
        var options = ko.utils.unwrapObservable(valueAccessor());
        setTimeout(function() { 
            $(element).dialog(options || {});
        }, 0);

        //handle disposal (not strictly necessary in this scenario)
         ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
             $(element).dialog("destroy");
         });   
    },
    update: function(element, valueAccessor, allBindingsAccessor) {
         var shouldBeOpen = ko.utils.unwrapObservable(allBindingsAccessor().openWhen);
         var options = ko.utils.unwrapObservable(valueAccessor());
         var $elem = $(element);
         var dynamicOptions = ko.utils.unwrapObservable(allBindingsAccessor().dynamicOpts) || {};
         $elem
            .dialog(shouldBeOpen ? "open" : "close");
         if (dynamicOptions.title)
             $elem.dialog("option", "title", ko.utils.unwrapObservable(dynamicOptions.title));
    }
};
我这样称呼它

<!--  ko with: loginDialog -->
<div id='logindlg' class="dialog"
    data-bind="dialog: {autoOpen: false, modal: true, closeOnEscape: false, title: 'Login', height: 300, width: 550, dialogClass: 'no-close', resizable: false}, openWhen: open">

 <!-- more stuff here -->
</div>
<!-- /ko -->


当您调用
ko.applyBindings(model)
时,是否在模型之后传递任何其他参数?若你们能发布一个精简版的JS和HTML,这会有所帮助。