私は次のJavaScriptを持っています:
function RandomViewModel() {
var self = this;
self.RnadomSquaresK = ko.observableArray([
randomSquare(),
randomSquare(),
]);
}
var randomSquare = function() { return ko.observable({
innate: ko.observableArray([
{ star: "test1", Class: "starList", Style: {} },
{ star: "test2", Class: "starList", Style: {display:'inline'} },
{ star: "test3", Class: "starList", Style: {} },
{ star: "test4", Class: "starList", Style: {} }
])
})};
ko.applyBindings(new RandomViewModel());
基本的に、それぞれ 4 つの要素を持つ 2 つの observableArray の observableArray を作成しています。
私は次のhtmlを持っています:
<script id="starTemplate" type="text/html">
<!-- ko if: ($index >= 0) -->
<div data-bind="text: $index, attr: { class: Class }, style: Style"></div>
<!-- /ko -->
</script>
<div class="starList" data-bind="template: { name: 'starTemplate', foreach: RnadomSquaresK()[0]().innate }"></div>
バインドされている observableArray に従って各インデックスが出力された div が作成されることを期待しています。(この場合: 4 div、すべてのインデックスが 0 以上である必要があるため)
私が実際に得るもの:空白。
JSFiddle リンクは次のとおりです: http://jsfiddle.net/qrwBE/
if ステートメントを ex: に変更するif: $index != 0
と、配列にバインドされた 4 つの要素すべてが出力されますが、この場合、最初の要素 (インデックス 0) が他の 3 つの要素と一緒に出力される理由がよくわかりません。
if
ステートメントを間違って使用していますか?
何が起こっているのかについての説明、および JavaScript などに関するその他のコメントは大歓迎です。