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