0

我想在需要时用前导零格式化我的数字:

例子:

1 >> 01

5 >> 05

10 >> 10

我试过这个:

<td data-bind="text: ProjectId.toString('00')"></td>

ProjectId包含我的号码的财产在哪里。

但它不起作用。我得到错误Number.prototype.toString: invalid argument

任何想法?

4

2 回答 2

0

对于非常简单的情况,这应该有效

<span data-bind="text: ProjectId < 10 ? '0' + ProjectId.toString() : ProjectId"></span>

或者将此逻辑移到您的模型中:

vm.paddedProjectId = ko.computed(function() {
    return vm.ProjectId < 10 ? '0' + vm.ProjectId.toString() : vm.ProjectId;
});

这不适用于零以下的数字,也不会获取动态的零数(例如,如果您的数字超过 100,您可能需要“005”等)。它也可能有一些带有意外值的不确定结果ProjectId,例如空字符串。对于这些情况,请参阅评论中提到的问题

PS。您正在使用的函数是Number.toString,它需要一个基数参数;我认为它本身很有用,但并不完全符合您的要求。

于 2013-09-01T11:40:30.117 回答
0

如此处所述,使用 zeroFill 函数添加前导零。

vm.paddedProjectId = ko.computed(function() {
return vm.zeroFill(vm.ProjectId());
});
于 2013-09-01T13:49:34.340 回答