Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
Knockout.js 尝试使用敲除添加启用/禁用的上一个和下一个按钮_Knockout.js - Fatal编程技术网

Knockout.js 尝试使用敲除添加启用/禁用的上一个和下一个按钮

Knockout.js 尝试使用敲除添加启用/禁用的上一个和下一个按钮,knockout.js,Knockout.js,我正在学习击倒,我正在尝试添加一个“上一步”和“下一步”按钮到处理电子邮件的简单教程中。下面是代码和html。我正在使用Sammy解析learn.knockoutjs.com中的一些邮件数据 <script src="/scripts/lib/sammy.js" type="text/javascript"></script> <!-- Folders --> <ul class="folders" data-bind="foreach: folders

我正在学习击倒,我正在尝试添加一个“上一步”和“下一步”按钮到处理电子邮件的简单教程中。下面是代码和html。我正在使用Sammy解析learn.knockoutjs.com中的一些邮件数据

<script src="/scripts/lib/sammy.js" type="text/javascript"></script>
<!-- Folders -->
<ul class="folders" data-bind="foreach: folders">
    <li data-bind="text: $data, 
               css: { selected: $data == $root.chosenFolderId() },
              click: $root.goToFolder"></li>
</ul>
<!-- Mails grid -->
<table class="mails" data-bind="with: chosenFolderData">
    <thead><tr><th>From</th><th>To</th><th>Subject</th><th>Date</th></tr></thead>
    <tbody data-bind="foreach: mails">
         <tr data-bind="click: $root.goToMail">
            <td data-bind="text: from"></td>
            <td data-bind="text: to"></td>
            <td data-bind="text: subject"></td>
            <td data-bind="text: date"></td>
        </tr>     
    </tbody>
</table>
<div class="viewMail" data-bind="with: chosenMailData">
    <div>
        <button id="Prev" value="Prev" style="float:left;margin:5px 20px;" data-bind="visible: $root.checkPrev, click: $root.goToPrev">Previous</button>
        <button id="Next" value="Next" style="float:right;margin:5px 20px;" data-bind="visible: $root.checkNext, click: $root.goToNext">Next</button>
    </div>
    <div class="mailInfo">
        <h1 data-bind="text: subject"></h1>
        <p><label>From</label>: <span data-bind="text: from"></span></p>
        <p><label>To</label>: <span data-bind="text: to"></span></p>
        <p><label>Date</label>: <span data-bind="text: date"></span></p>
    </div>
    <p class="message" data-bind="html: messageContent" />
</div>
我尝试使用visible:$root.checkPrev作为上一个按钮的绑定,并使用了相关的ko.computed函数。我遇到的问题是,我无法在函数中获取要检查的mail.id,因此我无法找到一种方法来判断“下一个”和“上一个”按钮是否可见。 我希望能在函数中看到self.chosenMailId,但在使用计算函数时没有定义它? 任何帮助都将不胜感激

干杯

    self.chosenMailId= this.params.mailId.valueOf();
    //alert(self.chosenMailId);

在这里,您将替换您的observable,而不是设置它,结果是
chosenMailID
不再是一个observable<代码>警报将给出正确的值,但您的绑定仍将查看以前存在的可观察值,并且不会更新。
alert
显示的是实际值而不是“函数…”这一事实应该提醒(呵呵)您注意这个问题。

这是答案的一部分,另一部分是下面的答案,请参阅注释。谢谢你的帮助
    self.chosenMailId= this.params.mailId.valueOf();
    //alert(self.chosenMailId);