【问题标题】:knockout bind in style element样式元素中的淘汰赛绑定
【发布时间】:2013-01-18 11:40:59
【问题描述】:

这是我第一个使用 .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>&nbsp;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 }"

我很肯定进度字段正在工作,因为我在下面的范围内得到了值。

有什么想法吗?

【问题讨论】:

    标签: asp.net asp.net-mvc-4 knockout.js


    【解决方案1】:

    您需要指定一个单位。 {width: progress() + 'px'} 之类的东西,或者创建一个计算的 observable 并返回它的单位。

    【讨论】:

    • 如此简单,data-bind="style: {width: progress + '%'}" 就像一个魅力,谢谢
    猜你喜欢
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 2013-02-04
    • 2012-04-20
    相关资源
    最近更新 更多