我想在需要时用前导零格式化我的数字:
例子:
1 >> 01
5 >> 05
10 >> 10
我试过这个:
<td data-bind="text: ProjectId.toString('00')"></td>
ProjectId
包含我的号码的财产在哪里。
但它不起作用。我得到错误Number.prototype.toString: invalid argument
任何想法?
我想在需要时用前导零格式化我的数字:
例子:
1 >> 01
5 >> 05
10 >> 10
我试过这个:
<td data-bind="text: ProjectId.toString('00')"></td>
ProjectId
包含我的号码的财产在哪里。
但它不起作用。我得到错误Number.prototype.toString: invalid argument
任何想法?
对于非常简单的情况,这应该有效:
<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,它需要一个基数参数;我认为它本身很有用,但并不完全符合您的要求。
如此处所述,使用 zeroFill 函数添加前导零。
vm.paddedProjectId = ko.computed(function() {
return vm.zeroFill(vm.ProjectId());
});