0

我有一个从 json 中提取的号码。使用 knockout.js 我想读取该数字并使用它来设置 div 的宽度。例如:数字 50 将等于 div 上的 50px 宽度。

如何在 knockout.js 中创建一个函数来执行此操作?

http://jsfiddle.net/infatti/zEWuZ/

<ul>
  <li>
    <span class="days-due" data-bind="text: daysDue"></span> days due
    <div class="bar"></div>
  </li>
</ul>

// Here's my data model
var viewModel;
$.getJSON('http://echo.jsontest.com/daysDue/50', function (data) {
    viewModel = ko.mapping.fromJS(data);
    ko.applyBindings(viewModel);
});

编辑:这现在在我的小提琴中有效,但这里出了点问题。这与我的 data.dueDays 有关吗?

    // Here's my data model
    var viewModel;
    $(document).ready(function() {
        $.getJSON('my/json', function (data) { 
            ko.mapping.fromJS(data.workflowItemViewModels, {}, viewModel.workflowItemViewModels);

            viewModel = new DashboardViewModel();

            viewModel.barWidth = "width: " + data.dueDays + "px";

            ko.applyBindings(viewModel);
        });
    });
4

1 回答 1

1

这是一种可能的方式作为示例:

// Here's my data model
var viewModel;
   $.getJSON('http://echo.jsontest.com/daysDue/50', function (data) {
    viewModel = ko.mapping.fromJS(data);   
    viewModel.barWidth = "width: " + data.daysDue + "px;";
    ko.applyBindings(viewModel);
});

并绑定为

 <div class="bar" data-bind="attr: { style: barWidth }"></div>
于 2013-06-07T14:46:30.790 回答