这是我用.net mvc测试knockout.js的第一个项目。到目前为止,看起来很酷。
我有这个观点:
<div class="container">
<div data-bind="foreach: viewModel.items">
<div class="well well-small">
<div class="row">
<div class="span9">
<h3><span data-bind="text: Name"></span><small> Registered by <span data-bind="text: RegisteredBy"></span>at <span data-bind="text: Registered"></span></small></h3>
<p><span data-bind="text: Description"></span></p>
</div>
</div>
<div class="row">
<div class="span6">
<div class="progress">
<div class="bar" data-bind="style: {width: progress }"></div>
</div>
</div>
<div class="span3">
<span data-bind="text: progress"></span>% done <a class="btn btn-mini" href="#"><i class="icon-plus"></i>add 10%</a>
</div>
</div>
</div>
</div>
然后我这样做:
<script>
$(document).ready(function () {
var initialData = @(Html.Raw(Json.Encode(Model)))
viewModel = { items: ko.observable(initialData) };
ko.applyBindings(viewModel);
});
这一切都有效,除非我尝试像这样绑定data-bind =“style:{width:progress}”
我确信进度字段正在工作,因为我在下面的范围内得到了值。
有什么想法吗?
答案 0 :(得分:2)
您需要指定一个单位。像{width: progress() + 'px'}
之类的东西,或创建一个计算的observable,用单位返回它。