Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Durandal widgets内部功能范围和上下文_Javascript_Durandal_Syncfusion - Fatal编程技术网

Javascript Durandal widgets内部功能范围和上下文

Javascript Durandal widgets内部功能范围和上下文,javascript,durandal,syncfusion,Javascript,Durandal,Syncfusion,我有durandal小部件和两个syncfusion按钮: view.html <div class="group-btn-container"> <input type="checkbox" data-bind="ejToggleButton: toggleButtonNo" /> <input type="checkbox" data-bind="ejToggleButton: toggleButtonYes" />

我有durandal小部件和两个syncfusion按钮:

view.html

<div class="group-btn-container">            
    <input type="checkbox" data-bind="ejToggleButton: toggleButtonNo" />
    <input type="checkbox" data-bind="ejToggleButton: toggleButtonYes" />
</div>
两个按钮“是”和“否”应该像单选按钮一样工作,当一个打开时,另一个应该关闭

问题1:我对ViewModel上下文或范围有问题。 在单击函数中,我没有看到“self”,实际上self总是另一个小部件,因为在一个循环中,我呈现了两个小部件,我不知道为什么self不是我的函数

问题2:当我想直接从单击函数接近对象“toggleBtnNo”或“toggleBtnYes”时,它们也没有定义。为什么我在我的内部“单击”函数中看不到全局函数ctor中的对象


我只是不知道如何通过单击功能接近按钮(以一种或另一种方式)如何更改其状态?

从您提供的代码片段来看,您似乎试图通过为模型指定值来更新切换按钮的状态。这样,模型值就被分配了,并且在ToggleButton控件中没有反映出来

相反,对于要更新的ToggleButton控件,您需要更新模块中可观察变量(self.toggleButtonNo.toggleState)中的值,并调用ko.applyBindings方法,以便模型值将通过ToggleButton控件更新

请参考下面提供的代码片段

HTML

<input id="yes" type="checkbox" data-bind="ejToggleButton: {toggleState: toggleButtonYes.toggleState , defaultText: settings.defaultText, activeText: settings.activeText, click: toggleButtonYes.click}" />

<input id="no" type="checkbox" data-bind="ejToggleButton: {toggleState: toggleButtonNo.toggleState, defaultText: settings.defaultText, activeText: settings.activeText, click: toggleButtonNo.click}" />

这是有史以来最严重的错误。我看了一百万遍,没有注意到。我感到羞愧

我没有把“var”放在self前面

self = this;  
应该是:

var self = this;

它导致self进入全局范围,并且每当其他小部件覆盖self的值时。

谢谢您的回答。你是对的,我在淘汰赛中犯了错误,没有做应用绑定。但是我的问题是self/这不是我的功能的self,那么其他人还在这里。我不确定,但这是杜兰达尔的问题。也许我没有正确构造“ctor”函数。在你的例子中,我也有一个问题。
self = this;  
var self = this;