我正在AngularJs中创建一个指令。 指令将从app控制器接收一个JSON对象,并根据该指令显示内容。
我根据我的问题做了一个简单的演示,可以在http://jsfiddle.net/darkyndy/6StLm/
找到现在我的JSON看起来像:
ctrlItemJson = {
myk: "something",
state: {
step: 1.0
}
};
当我访问state.step
时,为什么在指令链接,控制器和视图中我得到 1 而不是 1.0 ?
将值设置为字符串'1.0'
它可以工作,但对我来说,我需要与控制器发送它的方式完全相同。
稍后编辑:
这主要来自Javascript,就好像你试试
var a = 1.0
然后尝试console.log(a)
,您会看到1
在本案例中,我将与API人员讨论发送字符串......
解决方案:
1。如果您无法控制价值:
对于你想要保留小数的位置(小数是零,例如:1.0
,2.00
)而不是使用浮点数然后使用字符串(例如:'1.0'
,'2.00'
)。
2. 如果您可以控制并知道精度(指令将决定精度):
然后检查此问题的回复。 示例:http://jsfiddle.net/SE5s3/
答案 0 :(得分:1)
您可以使用.toPrecision(x)
在JavaScript中指定某个浮点精度,其中x
是您想要的精度。
以下是实现此功能的jsfiddle的一个版本:http://jsfiddle.net/SE5s3/
我更改的具体代码:
<input type="text" value="{{dyItemJson.state.step.toPrecision(2)}}"/>
答案 1 :(得分:0)
这不是AngularJS相关的东西,而是JavaScript。例如,
var a = 2.0;
实际上只是2。
如果您希望将数字设置为特定的小数位,也可以使用Angular中的数字过滤器:
template: '<input type="text" value="{{dyItemJson.state.step | number:2}}"/>',