angularjs xeditable 数字但源是字符串格式
angularjs xeditable number but source is string formatted
我正在使用 xeditable
编辑内联数据。现在我想编辑一个数字字段,但源数据包含字符串格式的数字。所以我得到错误 ngModel:numFmt
。如何将字符串格式的数字(例如:0.3
)转换为 xeditable
的数字?
我尝试使用 string-to-number
指令,但 xeditable
似乎无法识别它:
<td>
<span data-editable-number="row.factor"
data-ng-model="row.factor"
data-e-name="factor"
onbeforesave="validateRow(data, row.id)"
onaftersave="save(row)"
data-e-required
string-to-number="string-to-number"
>
{{row.factor}}
</span>
</td>
您可以创建一个过滤器将 String 转换为 Integer
app.filter('num', function(){
return function(input) {
return parseInt(input, 10);
};
});
然后像这样使用它
editable-number="row.factor | num "
工作Plunker
之前更新模型没用,更好的方法是事先转换数据。
例如
var rows = [{factor:"1"}, {factor: "4"}, {factor: "9"}];
var tranformed_rows = rows.map(function(row) {
row.factor = parseInt(row.factor);
return row;
});
然后在您的视图中使用 tranformed_rows
。
我正在使用 xeditable
编辑内联数据。现在我想编辑一个数字字段,但源数据包含字符串格式的数字。所以我得到错误 ngModel:numFmt
。如何将字符串格式的数字(例如:0.3
)转换为 xeditable
的数字?
我尝试使用 string-to-number
指令,但 xeditable
似乎无法识别它:
<td>
<span data-editable-number="row.factor"
data-ng-model="row.factor"
data-e-name="factor"
onbeforesave="validateRow(data, row.id)"
onaftersave="save(row)"
data-e-required
string-to-number="string-to-number"
>
{{row.factor}}
</span>
</td>
您可以创建一个过滤器将 String 转换为 Integer
app.filter('num', function(){
return function(input) {
return parseInt(input, 10);
};
});
然后像这样使用它
editable-number="row.factor | num "
工作Plunker
之前更新模型没用,更好的方法是事先转换数据。
例如
var rows = [{factor:"1"}, {factor: "4"}, {factor: "9"}];
var tranformed_rows = rows.map(function(row) {
row.factor = parseInt(row.factor);
return row;
});
然后在您的视图中使用 tranformed_rows
。