gpt4 book ai didi

mvvm - Kendo UI Hierarchical datagrid - 如何从详细网格编辑器模板 MVVM 访问 Root View 模型

转载 作者:行者123 更新时间:2023-12-03 10:19:23 25 4
gpt4 key购买 nike

我在网格中有一个网格,其中父网格在 MVVM 中构建,子网格在其 data-detail-init http://jsbin.com/kuvejuw 上初始化

<div data-role="grid"
data-columns="[
{ 'field': 'FirstName'},
{ 'field': 'LastName'}
]"
data-bind="source: dataSource"
data-detail-init="viewModel.detailInit"
>
</div>

如果在 viewModel 上有一个自定义属性(例如这里的文本),并且在子网格的弹出编辑器中,我想绑定(bind)到这个属性。所以例如在更复杂的场景中,我可以通过在 viewModel 上有一个数组(或可观察数组)来填充一个包含一系列值的下拉列表。
var viewModel = kendo.observable({
dataSource: new kendo.data.DataSource ... // everything works here,
detailInit: detailInit,
Text: "This text should be displayed in editor in detail's grid",
});

kendo.bind(document.body, viewModel);

问题是在详细网格编辑器的模板中无法检测到此属性(或整体 viewModel):
function detailInit(e){
...
editable: {
mode: "popup",
template: kendo.template($("#child-editor-template").html())
}
...
}

模板是这样构建的:
  <script type="text/x-kendo-template" id="child-editor-template">
<span data-bind="text: Text"></span>
</script>

但我也试过 data-bind="text:viewModel.Text" .我尝试了各种解决方案,在 detailGrid 的编辑事件中设置 viewModel 上的 Text 属性,或者在 viewModel 绑定(bind)上设置它,但它不适用于这个 jsBin(3.2016 版本)。

现在有趣的是,我实际上能够在本地项目中使用 2015v3 Kendo UI 访问此属性,但我无法在此 jsBin 中复制它。

在我的本地项目中,尽管我仍然无法访问 ViewModel 中的事件,例如我可以做 text: Text , 但不能 events: {select: onSelect} .

一旦对这件事进行排序,访问事件最终将是提出这个问题的原因,如果我对 mvvm 期望过高,我正在寻找一些提示来了解正在发生的事情。

编辑:

我期待在子网格 http://jsbin.com/canomux 的弹出编辑器中启用这种类型的功能。

最佳答案

像这样试试

我只是在您的模板中进行更改,

 <script type="text/x-kendo-template" id="child-editor-template">
<input name="ShipCountry"/>
</script>

http://jsbin.com/levenacari/edit?html,js,output

关于mvvm - Kendo UI Hierarchical datagrid - 如何从详细网格编辑器模板 MVVM 访问 Root View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40466582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com