У меня есть простая страница с несколькими элементами управления, такими как:
<div id="ActionMenu">
<ul id="panelbar"
data-role="panelbar"
data-bind="events: { enable: onEnable, collapse: onCollapse }">
<li id="item1">
<span>Action menu</span>
<div>
<div class="panelActions">
<button data-role="button"
data-bind="visible: isVisible, enabled: isEnabled, events: { click: onClick }"
id="logOutButton">
Log users out
</button>
</div>
</div>
</li>
</ul>
</div>
а затем я делаю что-то вроде этого, чтобы создать модель представления и связать вещи:
var vm;
require(['App/Admin/userInfoGrid'], function (userInfo) {
vm = userInfo.UserInfoGrid(config_UserInfo);
kendo.bind($(config_UserInfo.gridId), vm);
kendo.bind($(config_UserInfo.actionMenu), vm.ActionMenu);
kendo.bind($(config_UserInfo.logOutButton), vm.LogOutButton);
kendo.bind($(config_UserInfo.messageWindow), vm.MessageWindow);
});
На странице есть несколько элементов управления, поэтому я связываю их все таким образом.
Внутри вм:
this.ActionMenu = kendo.observable({
expandMode: "single",
//onCollapse: onCollapse,
//onEnable: function(e) {
// alert("on enable");
//}
});
Это работает, но на панели, которую я использую, есть методы и события, и я хочу их использовать.
До сих пор, если я хочу использовать встроенные методы и события внутри модели представления, мне нужно сделать что-то вроде этого:
var panelBar = $(config.actionMenu).data("kendoPanelBar");
panelBar.enable($("#item1"), false);
И если я попытаюсь захватить и проверить наблюдаемое:
console.log(that.ActionMenu)
В нем нет встроенных методов кендо, только те, которые я определил сам.
Поскольку я не хочу заново изобретать велосипед и повторно реализовывать все те методы, которые уже должны быть на месте, есть ли способ заставить мое ActionMenu получить доступ к функциональности «kendoPanelBar»?
Поскольку они, в конце концов, являются одним и тем же элементом управления, я полагаю, что должен быть какой-то способ заставить его работать следующим образом:
that.ActionMenu.enable($("#item1"), false);
Любые идеи? Этот конкретный пример относится к PanelBar, но тот же вопрос относится ко всем другим элементам управления. заранее спасибо