Kendo ui 模态窗口中的可观测

Kendo ui 模态窗口中的可观测,kendo-ui,observable,kendo-mvvm,Kendo Ui,Observable,Kendo Mvvm,我在做水疗。我正在使用RequireJS和剑道路由 define(['kendo'],function(kendo) { router.route("/SomePage/", function () { require(['MyViewModel', 'text!MyTemplate'], function (viewModel, view) { loadView("#main-content", viewModel, view);

我在做水疗。我正在使用RequireJS和剑道路由

define(['kendo'],function(kendo) {

router.route("/SomePage/", function () {
            require(['MyViewModel', 'text!MyTemplate'], function (viewModel, view) {
                loadView("#main-content", viewModel, view);
            });
        });
var loadView = function(container, viewModel, view) {
            var kendoView = new kendo.View(view, { model: viewModel });
                layout.showIn(container, kendoView);
        };
}
上面的代码工作得很好

有一个剑道网格,由服务器通过可观察对象的响应填充。网格中的每一行都有打开模式窗口的按钮。在窗口中将动态生成radiobutton组

所以,我有MyViewModel.js

define(['GridDataSource','RadioBtnDataSource'],function(ds, ds2){

    var GridViewModel = kendo.observable({
        gridDS: ds,

        openModalWin: function (e) {

           var modalWindow = $("#actions-modal-window").kendoWindow({}).data("kendoWindow").open();
           modalWindow.center();

           //radiobuttons view model
           var actionsViewModel = kendo.observable({

              //actions: ds2
              actions: [
                  { id: "id1", lable: "Send to black hole" },
                  { id: "id2", lable: "Shred" }
              ]
           });

           kendo.bind($("#radioBtnGroup"), actionsViewModel);
        }
    });

return cileGridViewModel;
});
这是我的html模板:

 <div class="panel-body"><

                <div id="cile-table"
                     data-role="grid"
                     data-editable="window"
                     data-bind="source: gridDS"
                     data-columns='[
                     {"field": "ID"},
                     {"field": "Name"},
                     {"template":"<a href=\"\\#/SomePage/\" data-bind=\"click: openModalWin \">Open</a>"},
                 ]'></div>

                <div id="actions-modal-window"
                     data-role="window"
                     data-visible="false"
                     data-modal="true"
                     data-width="55%"
                     data-height="600">

                        <ul data-bind="source: actions" data-template="ul-template" id="radioBtnGroup"></ul>

                        <script id="ul-template" type="text/x-kendo-template">
                            <li>
                                <input type="radio" name="hcEnd" id="hc1" data-bind="attr: {id: id}" />
                                <label data-bind="attr: {for: id}, text:lable"></label><br />
                            </li>
                        </script>
                </div>
        </div>
</div>
有一个带数据绑定的李剑道模板

当我使用JSFIDLE时,它可以工作:

但在我的项目中,它返回error uncaughttypeerror:undefined没有属性。 可能,将viewModel与无序列表或嵌套的可观察对象绑定存在问题,但我无法修复它。 拜托,有人能帮忙吗? 我的方法可能是错误的,所以我欢迎不同的方法。

解决了。 无序列表缺少数据角色=listview。 可能在温泉浴场是必要的

<ul   data-role="listview"   data-bind="source: cilActions " data-template="ul-template" id="radioBtnGroup"></ul>