Kendo MVVM DropDownList在Template内部无法正常运行

时间:2015-08-06 10:34:07

标签: kendo-ui kendo-mvvm

如果我将MVVM下拉列表放在kendo模板中,则下拉列表;

(a)在屏幕的左上角(而不是在输入下方)打开。 (b)不发生事件

我创建了一个dojo。有两个相同的下拉列表,除了第二个是使用模板创建,而第一个不是。您可以看到第二个下拉列表未在正确的位置打开,并且没有事件记录到控制台。

这是一个错误,还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

建议不要将小部件与'source:this'绑定,而是在模型上绑定子属性:'source:item'

http://dojo.telerik.com/UHicE/3

<div id="div2" data-bind="source: item" data-template="myTemplate"></div>

<script id="myTemplate" type="text/x-kendo-template" >
    <input data-role="dropdownlist"
           ...
           data-bind="value: selectedProduct,
                      source: products,
                      enabled: isEnabled />
</script>


var viewModel = kendo.observable({
  item:  {
    selectedProduct: null,
    isPrimitive: false,
    isEnabled: true,
    products: new kendo.data.DataSource({
      transport: {
        read: {
          dataType: "jsonp",
            url: "http://demos.telerik.com/kendo-ui/service/Products",
          }
        }
      }),
      ...
    }
  });

进一步测试,看来问题是远程数据源: http://dojo.telerik.com/elOcO

如果您使用远程来源,最好不要使用source: this