我想在需要时用前导零格式化我的数字:
示例:
1>> 01
5>> 05
10>> 10
我试过这个:
<td data-bind="text: ProjectId.toString('00')"></td>
ProjectId
是包含我的号码的属性。
但它不起作用。我收到错误Number.prototype.toString: invalid argument
有什么想法吗?
答案 0 :(得分:0)
对于非常简单的情况,这应该是work:
<span data-bind="text: ProjectId < 10 ? '0' + ProjectId.toString() : ProjectId"></span>
或move this logic代替您的模型:
vm.paddedProjectId = ko.computed(function() {
return vm.ProjectId < 10 ? '0' + vm.ProjectId.toString() : vm.ProjectId;
});
这对于零以下的数字不起作用,也不会获得零的动态数字(例如,如果你的数字超过100你可能想要“005”等)。它可能还有一些if ProjectId
意外值的结果,例如the empty string。对于这些情况,请参阅question mentioned in comments。
PS。您正在使用的函数是Number.toString,它需要 radix 参数;我认为它本身很有用,但并不是你想要的。
答案 1 :(得分:0)
如告诉here,使用zeroFill函数添加前导零。
vm.paddedProjectId = ko.computed(function() {
return vm.zeroFill(vm.ProjectId());
});