Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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 can';t使knockout.js依赖的可观察链接正常工作_Javascript_Knockout.js - Fatal编程技术网

Javascript can';t使knockout.js依赖的可观察链接正常工作

Javascript can';t使knockout.js依赖的可观察链接正常工作,javascript,knockout.js,Javascript,Knockout.js,我很难在knockout.js中获得一个简单的DependentToServable链。这是我的密码: var viewModel = { didWork: ko.observable(''), stillWorking: ko.observable(''), didYouQuit: ko.observable('') }; viewModel.stillWorkingVisible = ko.dependentObservable(function () {

我很难在knockout.js中获得一个简单的DependentToServable链。这是我的密码:

var viewModel = {
    didWork: ko.observable(''),
    stillWorking: ko.observable(''),
    didYouQuit: ko.observable('')
};

viewModel.stillWorkingVisible = ko.dependentObservable(function () {
    return this.didWork() == 'Yes';
}, viewModel);

viewModel.didYouQuitVisible = ko.dependentObservable(function () {
    alert('ok');
    return this.stillWorkingVisible() == 'Yes' && this.stillWorking() == 'No';
}, viewModel);

ko.applyBindings(viewModel);

<ul>
    <li>Did you do any work?<br />
        <input type="radio" name="didWork" value="No" data-bind="checked: didWork" />&nbsp;No
        <input type="radio" name="didWork" value="Yes" data-bind="checked: didWork" />&nbsp;Yes
    </li>
    <li data-bind="visible: stillWorkingVisible">Are you still working?<br />
        <input type="radio" name="stillWorking" value="No" data-bind="checked: stillWorking" />&nbsp;No
        <input type="radio" name="stillWorking" value="Yes" data-bind="checked: stillWorking" />&nbsp;Yes
    </li>
    <li data-bind="visible: didYouQuitVisible">Did you quit?<br />
        <input type="radio" name="didYouQuit" value="No" data-bind="checked: didYouQuit" />&nbsp;No
        <input type="radio" name="didYouQuit" value="Yes" data-bind="checked: didYouQuit" />&nbsp;Yes
    </li>
</ul>
var viewModel={
干活儿:高。可观察(“”),
仍在工作:可观察(“”),
didYouQuit:ko.可观察(“”)
};
viewModel.stillWorkingVisible=ko.DependentToServable(函数(){
返回此.didWork()==“是”;
},视图模型);
viewModel.didYouQuitVisible=ko.DependentToServable(函数(){
警报(“正常”);
返回this.stillWorkingVisible();
},视图模型);
应用绑定(视图模型);
  • 你做过什么工作吗?
    不 对
  • 您还在工作吗?
    不 对
  • 您退出了吗?
    不 对

每当检查“您是否仍在工作”收音机时,DidYouQuit Visible DependentToServable似乎从未更新或启动。我有一个警报(),每当“你还在工作吗”收音机被选中/取消选中时,警报就不会弹出。但是,当选中/取消选中第一个无线电组时,警报确实会显示。第一个DependentToServable(仍然工作可见)工作正常。想法?

您的代码在以下断言上似乎是错误的:

    return this.stillWorkingVisible() == 'Yes' 
stillWorkingVisible()
将永远不会返回字符串“Yes”,而是返回
bool

编辑

使用修复程序时,似乎与预期的一样工作。

工作版本:


stillWorkingVisible()
正在返回一个bool

非常有趣。不知道为什么这不起作用。。我在这里对代码进行了修改: