私はKOで行く単純なビューモデルを持っています:
function TemplateFile(name, fileName) {
var self = this;
self.name = name;
self.fileName = fileName;
}
var layoutViewModel = {
loggedInUser: ko.observable("user"),
templateFiles: ko.observableArray([
// some initial entries...
]),
contentHeading: ko.observable("Content"),
// some other things...
};
$(function () { ko.applyBindings(layoutViewModel); });
そして、データは私の _Layout.cshtml 部分ビューのさまざまなポイントにバインドされており、それらのほとんどは正常に機能しています。こいつを除けば…
<!-- Page content -->
<div class="container-fluid"
style="background-color: white; border-radius: 10px; margin: 20px; min-height: 400px; height: auto !important; height: 400px">
<div class="row-fluid">
<div class="span12">
<h1 data-bind="text: contentHeading" style="color: darkgray;" />
</div>
</div>
<div class="row-fluid">
<div class="span12">
@RenderBody()
</div>
</div>
</div>
(インライン CSS は無視してください。これはまもなく修正されます ;))
h1 にバインドされている「contentHeading」データがまったく表示されません。私はすでにいくつかのことを試しました...
- バインドされているデータを切り替えています: まだ表示されませんでした
- タグをページのさまざまな部分に移動: 一部は機能し、一部はランダムに機能しませんでした
- ダミーテキスト値のハードコーディング: この DID が表示されます
これらの結果を考えると、おそらく Twitter Bootstrap を使用しているために、一部の DOM 要素のロード方法に問題があるのではないかと考えています。
私はここで途方に暮れており、他の誰からも同様の問題を見つけることができないようです。助言がありますか?
<ul class="dropdown-menu" data-bind="foreach: templateFiles">
<li>
<a href="#" data-bind="attr: { title: fileName}" />
<span data-bind="text: name" />
</li>
</ul>