【问题标题】:data-bind text inside another foreach loop knockout另一个foreach循环淘汰赛中的数据绑定文本
【发布时间】:2012-12-27 10:40:53
【问题描述】:

在 foreach 循环中绑定相同模型的文本,但该文本不是该数组的一部分。

function SmsViewModel(data,id) {
    var self = this;

    // Editable data
    self.Sms = ko.observableArray(JSON.parse(data));
    self.Num = ko.observable('Send SMS');
    self.removeNumber = function(item){
    }
    self.myPostProcessingLogic = function(elements) {
 if ($(id).children().length === ko.toJS(self.Sms).length) {
        // Only now execute handler
    jq();
    }
}   


}

当我显示短信数据时,它工作正常,但我无法在同一个 foreach 中显示 sel.Num

<div class="modalbox_content" data-bind="foreach: {data: Sms,afterRender: myPostProcessingLogic}" id="KnockOutSmsData">

              <!-- ko if: FromAddress === '+18038004697' && TypeOfMassage === 'I' -->
                <div class="message_container" >

                  <div class="message_user_photo"><img src="images/user_pic.png" width="40" height="40"/></div>
                  <div class="message_cell_number"><span data-bind="text: FromAddress"></span></div>
                  <div class="recieved_message_container">
                    <div class="recieved_message_arrow"></div>
                    <div class="recieved_message_box">
                      <p><span data-bind="text: Body"></span></p>
                      <div class="forwd_message"><a href="#"><img src="images/frwd_msg.png"/></a></div>
                      <span data-bind="text: MsgDateTime"></span></div>

                  </div>

                </div>
                <!-- /ko -->
                <!-- close message container -->
                <!-- ko if: ToAddress === '+18038004697' && TypeOfMassage === 'S' -->
                <div class="message_container" >

                  <div class="sent_message_user_photo"><img src="images/user_pic.png" width="40" height="40"/></div>
                  <div class="sent_message_cell_number"><span data-bind="text: ToAddress"></div>
                  <div class="sent_message_container">
                    <div class="sent_message_arrow"></div>
                    <div class="sent_message_box">
                      <p><span data-bind="text: Body"></span></p>
                      <span data-bind="text: MsgDateTime"></span></div>
                  </div>

                </div>
                <!-- /ko -->
                <!-- close message container --> 

              </div>

我只是想比较

<!-- ko if: FromAddress === self.Num && TypeOfMassage === 'I' -->

这个self.Num是一部分

self.Num = ko.observable('Send SMS');

FromAddress 是

的一部分
  self.Sms = ko.observableArray(JSON.parse(data));

提前感谢

【问题讨论】:

    标签: data-binding foreach knockout.js


    【解决方案1】:

    我认为您正在寻找 $parent binding context 变量,您可以使用它访问 foreach 内的“父”对象:

    <!-- ko if: FromAddress === $parent.Num() && TypeOfMassage === 'I' -->
    

    注意你需要写$parent.Num()(例如())因为Numko.observable

    这是一个大致基于您的代码的demo fiddle

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2013-11-25
    相关资源
    最近更新 更多