我使用breeze 1.5.0和angular 1.3.0 rc1我使用html表中的输入直接绑定到breeze实体到类型decimal?
的属性,如下所示:< / p>
<table>
<thead>
<tr>
<th>Column1</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="i in vm.items">
<td ng-repeat="c in i.children">
<div>
<input ng-model="c.value" z-float />
</div>
</td>
</tr>
</tbody>
但输入数字[0-9]后会忽略逗号和小数点。例如,我确实输入了值&#34; 9.99&#34;。
我试试这个,但它没有用。我确实输入了十进制值:
<input ng-model="vm.items[0].children[0].value" z-float />
我使用过&#34; Angular Float Directive&#34;更多信息here。
答案 0 :(得分:1)
Breeze没有错。他们在Angular.1.3.0中打破了它。现在我必须找到方法和原因。
FWIW,逗号从不工作。 JavaScript不支持&#39;,&#39;解析数字字符串时,它既不支持数字的国际化(例如,&#39;,&#39;表示小数点)。
发现他们打破了1.3格式的格式化程序的签名并且没有告诉任何人。参见https://github.com/angular/angular.js/issues/9218
我已将 breeze.angular.directives 更新为v.1.3.9,因此它现在应该适用于这两个版本。
请参阅更新的plunker:http://plnkr.co/edit/E2HgF7ASNWIdwsvzs5G0?p=preview,它改变了zFloat模型 - 值/元素 - 值比较
return (value === +viewValue) ? viewValue : value;
到
return (+viewValue === +modelValue) ? viewValue : modelValue;
答案 1 :(得分:0)
我不知道原因,但有些代码如何对我有用。我在本地文件中更改了zFloat指令。
return (+viewValue === +modelValue) ? viewValue : modelValue;
到
return (+viewValue === +modelValue) ? modelValue: viewValue;