【发布时间】:2014-03-09 19:12:03
【问题描述】:
Durandal 在附加视图模型之前将其绑定到视图,当您尝试使用 jquery 检查元素大小时,它总是返回 0。这是因为 jQuery 无法获取不可见或在不可见容器中的元素的正确大小。
我的绑定处理程序将文本限制为一定数量的行并将剩余文本替换为ellipsis,当 durandal 绑定页面时不起作用,但在第二次更新后元素可见时起作用
ko.bindingHandlers.ellipsis = {
update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
ko.bindingHandlers.text.update(element, valueAccessor);
var lines = allBindings.get('lines');
var $element = $(element);
var lineHeight = 1.3;
var heigth = lines * (+$element.css('font-size').substr(0, 2)) * lineHeight;
while ($element.outerHeight() > heigth) {
$element.text(replaceLast);
}
function replaceLast(index, text) {
return text.replace(/\W*\s(\S)*$/, '...');
}
}
};
当我通过绑定处理程序使用jQuery.customSelect 以及通过手动绑定回调使用它时,我也遇到了这个问题
【问题讨论】:
标签: javascript jquery knockout.js durandal durandal-navigation