使用knockout为kendo-ui输入包装器的宽度

时间:2013-12-30 10:37:25

标签: javascript css knockout.js kendo-ui width

我在durandal项目中工作(javascript和html写在分隔的页面中)。 我有kendo-combo,我通过声明wrraper-input宽度给它宽度。 它运作良好。但是,当我将其更改为绑定时 - 它不起作用。 这是我的代码(不起作用):

HTML:

<input id="kendoCombo" data-bind=" value:'444', style:{width:width},
        kendoDropDownList: { dataSource: data,
        dataValueField:itemValue,
        dataTextField: itemText,
        value:selectedId,
        template: template,
        change:onChange}" />

的javascript:

width:ko.observable('100px')

当我的宽度尚未绑定时,它运作良好。这是我以前的HTML代码:

<input style="width:100 
      id=" kendoCombo " 
      data-bind=" value: '444',
      kendoDropDownList: { dataSource: data,      
                           dataValueField:itemValue,
                           dataTextField: itemText,
                           value:selectedId, 
                           template: template,
                           change:onChange} " />

1 个答案:

答案 0 :(得分:1)

问题是Kendo在初始化时只设置width的{​​{1}}一次,因此当Knockout更新样式绑定中的DropDownList时,它对{ {1}}。

但是,您可以在width属性{需要:2013年第1季度(版本2013.1.319)或更新版本)DropDownList上设置width,您可以将此逻辑放入自定义bindingHandler:

wrapper

并像这样使用它:

kendoDropDownList

演示JSFiddle