我剛剛開始了一個新的Hot Towel SPA項目,我無法與ViewModel中的knockout進行綁定。在熱毛巾應用程序中使用Knockout可以進行綁定
我的視圖模型是這樣的:
define([
"services/logger",
"knockout"
],
function (logger, ko) {
var title = ko.observable("Partners");
return {
title: title,
activate: function() {
var that = this;
logger.log("Partners view activated", null, "admin.partners", false);
return true;
}
};
});
的看法是這樣的:
<section class="row-fluid">
<div class="span10" id="admin-content">
<h2 class="page-title" data-bind="text: title"></h2>
</div>
</section>
但冠軍最終總是被當作垃圾(函數即代碼,使用時像調試器:FUNCTION D(){IF(0 < ARGUMENTS.LENGTH)[...])
如果我改變綁定到「data-bind =」text:title()「,它的工作,但我意識到這並不是綁定可觀察的,只有值。因此,當使用這樣的綁定來完成表單時,它不會更新可觀察對象,並且我無法保存該值。
我發現的例子似乎使用與我完全相同的代碼,但我不明白爲什麼它不起作用。
我剛剛證實,做一個ko.applyBindings({test:ko.observable('test')},$(「#test」)[0]);在沒有括號的情況下與綁定一起工作,所以它看起來確實與Durandal有關。 – 2013-02-26 15:57:39
你在哪裏添加'ko.applyBindings(...)'語句?它是否在'activate'函數下的[viewmodel] .js中? – Blaise 2013-03-06 20:54:41
Blaise,看到解決我的問題的這個問題的答案。 – 2013-03-07 23:31:50