私は以下のノックアウトコードを使ってオブジェクトのプロパティを表示しています。 with
を使用するこのオブジェクトのプロパティが存在するかどうかを確認できます。'ko with'が表示されていない場合は、別のコンテンツを表示してください
<!-- ko with: Bunk1 -->
<div data-bind="css: Color">
<div class="row no-margin">
<div>
<div data-bind="text: Name"></div>
<div data-bind="text: FirstName"></div>
</div>
</div>
</div>
<!-- /ko -->
これはモデルです:
var viewModel = function() {
var self = this;
self.Bunk1 = ko.observable();
self.Bunk2 = ko.observable();
...
...
// 'val' is loaded with $.ajax
// this code might not be executed and Bunk1 can fail to initialize.
var model = new BunkModel();
model.initModel(val);
self.Bunk1(model);
...
}
function BunkModel() {
var self = this;
self.Color = ko.observable();
self.Name= ko.observable();
self.FirstName= ko.observable();
self.initModel = function (values) {
self.Color(self.mapColor(values.color));
self.Name(values.name);
self.FirstName(values.firstName);
}
}
私がやりたい何もデータ、ko with
へelse
のようなものが存在しない場合は、代替div
を表示することです。オブジェクトのプロパティをバインドすることはできますが、存在しない場合は代替データを表示できます。
何シンプル 'KO程度の場合:Bunk1()=== undefined'または' KO場合:後Bunk1()=== null'なので ' ko withブロック? – Stijn
は「未定義」について知らなかった。もしBunk1()=== undefinedが動作すれば 'ko 'null 'は' self.Bunk1 = ko.observable();の後で初期化されているように見えるので動作しません。 –
OK、それを答えに変換します。まず最初に聞いたのは明らかですが、おそらくノックアウトの初心者ではないかもしれません:) – Stijn