【发布时间】:2016-11-30 18:38:34
【问题描述】:
我有 durandal 小部件和两个同步融合按钮:
view.html
<div class="group-btn-container">
<input type="checkbox" data-bind="ejToggleButton: toggleButtonNo" />
<input type="checkbox" data-bind="ejToggleButton: toggleButtonYes" />
</div>
viewmodel.js
define(['knockout', 'jquery','web/ej.togglebutton.min', 'common/ej.widget.ko.min'], function (ko, $) {
var ctor = function () { };
ctor.prototype.activate = function (settings) {
self = this;
var toggleBtnYes = {
toggleState: ko.observable(false),
click: function (args) {
self.toggleButtonNo.buttonOptions.toggleState(false);
args.model.toggleState(true);
}
}
self.toggleButtonYes = toggleBtnYes;
var toggleBtnNo = {
toggleState: ko.observable(true),
click: function (args) {
self.toggleButtonYes.buttonOptions.toggleState(false);
args.model.toggleState(true);
}
}
self.toggleButtonNo = toggleBtnNo;
};
return ctor;
});
“是”和“否”两个按钮应该像单选按钮一样工作,当一个打开时,另一个应该关闭。
Q1:我对 viewodel 上下文或范围有疑问。 在点击功能内我看不到“自我”,实际上自我总是另一个小部件,因为在一个循环中我渲染了几个小部件,我不知道为什么自我不是我的功能 ctor?
Q2:当我想直接从点击函数接近对象“toggleBtnNo”或“toggleBtnYes”时,它们没有定义。为什么在我的内部“点击”函数中看不到来自全局函数 ctor 的对象?
我只是不知道如何从我的点击功能接近按钮(以一种或其他方式)我如何改变它的状态?
【问题讨论】:
标签: javascript durandal syncfusion