1

ノックアウトjsで次のテンプレートを使用しています

<tbody data-bind="foreach: List">
            <tr>
                <td><input type="button" data-bind="if: ($parent.IsFVL || $parent.AllowChat || $root.Me().AllowChatMonitoring), value: ID, click: SelectVisit" /><span data-bind="ifnot: ($parent.IsFVL || $parent.AllowChat || $root.Me().AllowChatMonitoring), text: ID"></span></td>...

そして、このようにテンプレートを呼び出し/開始します

<div data-bind="template: { name: 'tplVisitsGrid', data: { Title: 'My Visits', 'List': MVL, 'AllowChat': true, 'AllowPing': false, 'IsFVL': false } }"></div>

また、「$root.Me().AllowChatMonitoring」の値が true であることを再確認しましたが、input[type=button] とスパンの両方がレンダリングされています。何が欠けている可能性がありますか?

4

2 に答える 2

0

$parentIsFVL、AllowChatなどにアクセスするときは使用しないでください。テンプレートを次のように更新してみてください。

<input type="button" data-bind="if: (IsFVL || AllowChat || $root.Me().AllowChatMonitoring), value: ID, click: SelectVisit" />
<span data-bind="ifnot: (IsFVL || AllowChat || $root.Me().AllowChatMonitoring), text: ID"></span></td>

これで問題が解決しない場合は、問題をいじくりまわしてください。

于 2012-12-24T13:29:36.770 に答える
0

if複数のプロパティをとに結合しているためifnot、それらを評価する必要があります。これを試してみてください(そして、すべてが観察可能IsFVLであるAllowChatと仮定します-それらはそうである必要があります):AllowChatMonitoring

<td><input type="button" data-bind="if: ($parent.IsFVL() || $parent.AllowChat() || $root.Me().AllowChatMonitoring()), value: ID, click: SelectVisit" /><span data-bind="ifnot: ($parent.IsFVL() || $parent.AllowChat() || $root.Me().AllowChatMonitoring()), text: ID"></span></td>...

以前に実際に起こっていたのは、関数の戻り値ではなく、3つの関数を比較していたことです。

于 2012-12-24T13:25:13.493 に答える