我会尽量简洁。我正在使用DurandalJs,HotTowel SPA模板。我添加了以下viewmodel
define(['services/logger'], function (logger) {
title = 'Content';
unpublishedContent = ko.observable('default');
activate = function() {
logger.log(title + ' View Activated', null, title, true);
return true;
}
unpublishedContent.subscribe(function (newValue) {
logger.log('New value is: ' + newValue);
});
return {
activate: activate,
title: title,
unpublishedContent: unpublishedContent,
save: function (data) {
self = this;
logger.log(' Content saved - ' + self.unpublishedContent(), null, title, true);
}
};
});
以下视图
<section>
<div class="row">
<div class="col-md-4">Left section</div>
<div class="col-md-8">
<form class="form-horizontal" role="form" data-bind="submit: save">
<div class="form-group">
<label for="html" class="col-lg-3">Html</label>
<div class="col-lg-9">
<textarea class="form-control" data-bind="text: unpublishedContent"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-lg-3">Your HTML</label>
<label class="col-lg-9" data-bind="text: unpublishedContent"></label>
</div>
<div class="form-group">
<div class="col-lg-offset-3 col-lg-9">
<button type="submit" class="btn btn-default">Save</button>
</div>
</div>
</form>
</div>
</div>
</section>
这里有几点需要注意
unpublishedContent
属性a ko.observable
unpublishedContent
绑定到textarea和标签save
绑定绑定submit
方法
醇>
虽然我的提交绑定正在运行,但unpublishedContent
上的绑定无效。我可能在某个地方犯了一个简单的错误,但我无法发现,可能需要第二双眼睛看着它。
我已经启用了durandal的调试但是我没有从durandal的日志记录中得到很多,它没有显示与ko和第二个相关的任何内容,我认为我太新了,无法理解它的调试消息。
答案 0 :(得分:2)
您在text
上使用了错误的绑定(<textarea>
)。您需要的是value
绑定。
value
绑定将关联的DOM元素的值与a链接起来 视图模型上的属性。这通常适用于表单<input>
,<select>
和<textarea>
等元素。
因此请将您的观点更改为:
<textarea class="form-control" data-bind="value: unpublishedContent"></textarea>