0

所以我有一个带有 Web API 后端的单页应用程序,所以我从多个端点检索数据,因此有多个嵌套的视图模型。该应用程序具有非常模块化的设计,因此在这里获取代码有点困难,但我会尽力而为。

我试图做的是仅当 Condition1 或 Condition2 为真时才使用 data-bind if 语句包含 HTML 段,我遇到问题的部分是 Condition1 和 Condition2 在一般视图模型中,而我想要的值绑定在交易视图模型中,如“with:deal”语句所示。任何人都知道我怎么能做到这一点?

视图模型

     var self = this;
     self.deal = ko.observable();
     self.general = ko.observable();

    calculation.getBasicFactsDeal(calculationId, function (data) {
        self.deal(mapping.fromJS(data));
        var data = self.deal();
    });

    calculation.getBasicFactsGeneral(calculationId, function (data) {
        self.general(mapping.fromJS(data));
        var data = self.general();
    });

HTML:

    <div class="section" data-bind="with: deal">
        <div data-bind="if: $root.general().Condition1 || $root.general().Condition2 >
            <label >Is this a New Client?</label>


            <input type="radio" name="RadioGroup" id="Radio1" value="true" data-bind="    checkedRadioToBool: NewClient" />
            <label for="radio1">Yes</label>
            <input type="radio" name="KSTProcurmentRadio" id="Radio2" value="false" data-bind="    checkedRadioToBool: NewClient" />
            <label for="radio2">No</label>
            </div>
    </div>
4

2 回答 2

1

您是否遇到范围问题。怎么样:

<div class="section">
    <div data-bind="if: $root.general().Condition1 || $root.general().Condition2">
        <!-- ko with: deal -->
            <label>Is this a New Client?</label>
            <input type=" radio " name="RadioGroup " id="Radio1 " value="true " data-bind="checkedRadioToBool: NewClient" />
            <label for="radio1 ">Yes</label>
            <input type="radio " name="KSTProcurmentRadio " id="Radio2 " value="false " data-bind="checkedRadioToBool: NewClient " />
            <label for="radio2 ">No</label>
        <!-- /ko -->
    </div>
</div>
于 2013-06-04T18:06:38.830 回答
0

我看不到“交易”的代码,但如果“交易”中的条件是可观察的,那么您必须更改data-bind="if: $root.general().Condition1 || $root.general().Condition2" >data-bind="if: $root.general().Condition1() || $root.general().Condition2()" >.
我还注意到您在数据绑定属性(带有 IF)的末尾缺少一个结束块引号......

于 2015-04-02T08:17:36.017 回答