作成日: 2014/12/08 最終更新日: 2015/05/21
文書種別
不具合
状況
修正済み
詳細
KnockoutJSのコンテナレス構文(<!-- ko if: ○○○ -->)を使用しても、ウィジェットを非表示にすることができません。
【再現手順】
1. 下記のサンプルコードを実行します。
2. 「表示」のチェックをOFFにします。
結果: 通常のinputは非表示になりますが、wijinputtextは非表示になりません。
【サンプルコード】
<script type="text/javascript">
var viewModel = function () {
var self = this;
self.visible = ko.observable(true);
};
$(document).ready(function () {
var vm = new viewModel();
ko.applyBindings(vm);
});
</script>
<label><input type="checkbox" data-bind="checked: visible" />表示</label><br />
<!-- ko if: visible -->
<input data-bind="wijinputtext: { }" value="wijinputtext" />
<input value="input" />
<!-- /ko -->
【再現手順】
1. 下記のサンプルコードを実行します。
2. 「表示」のチェックをOFFにします。
結果: 通常のinputは非表示になりますが、wijinputtextは非表示になりません。
【サンプルコード】
<script type="text/javascript">
var viewModel = function () {
var self = this;
self.visible = ko.observable(true);
};
$(document).ready(function () {
var vm = new viewModel();
ko.applyBindings(vm);
});
</script>
<label><input type="checkbox" data-bind="checked: visible" />表示</label><br />
<!-- ko if: visible -->
<input data-bind="wijinputtext: { }" value="wijinputtext" />
<input value="input" />
<!-- /ko -->
回避方法
この問題はバージョン3.20151.71で修正されました。
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次のとおりです。
コンテナレス構文の代わりに、親要素にifバインディングを設定することで、ウィジェットを非表示にすることができます。
【サンプルコード】
<span data-bind="if: visible">
<input data-bind="wijinputtext: { }" value="wijinputtext" />
<input value="input" />
</span>
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次のとおりです。
コンテナレス構文の代わりに、親要素にifバインディングを設定することで、ウィジェットを非表示にすることができます。
【サンプルコード】
<span data-bind="if: visible">
<input data-bind="wijinputtext: { }" value="wijinputtext" />
<input value="input" />
</span>
旧文書番号
81093