knockout-jqueryui语法绑定对话框位置属性

时间:2014-04-09 04:25:07

标签: jquery jquery-ui knockout.js

我有一个客户端对象模型,它应该恢复任意一组jquery UI对话框的位置。我使用了knockout-jqueryui库(位于:http://gvas.github.io/knockout-jqueryui/dialog.html),语法如下:

<div class="documentWindow" data-bind="dialog: {resizable: true, title: windowTitle, width: width, height: height, position: windowPosition }">

在我的模型中,我有x和y的属性,加上jquery位置的计算属性(顺便说一下,我觉得它很整洁,但是对于我所做的事情来说,过于复杂到无用的地步。我在这里做,这是一个容器内的绝对定位)。这是返回windowPosition值的代码:

self.x = ko.observable(data.x);
self.y = ko.observable(data.y);

self.windowPosition = ko.computed({
    read: function() {
        var ret = { my: 'left top', at: self.x() + 'px ' + self.y() + 'px', of: '#dashboard' };
        return ret;
    },
    write: function(newVal) {
        //Do something here in a minute.
    }
});

我已经用不同的坐标硬编码了两个视图对象,但我无法让这个愚蠢的对象正常行动。有没有一些特殊的语法告诉这个东西把左上角放在x,y左边的包含元素的左上角(假设容器是硬编码的,此刻)?我也试过了:

return { my: 'left+' + self.x() + ' top+' + self.y(), at: 'left top', of: '#dashboard' };

return { my: 'left-' + self.x() + ' top-' + self.y(), at: 'left top', of: '#dashboard' };

没有更好的结果。

如果没有所有疯狂的位置,是不是只能指定这个内联?

0 个答案:

没有答案