Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改数据在AngularJS中的表示方式_Javascript_Angularjs - Fatal编程技术网

Javascript 更改数据在AngularJS中的表示方式

Javascript 更改数据在AngularJS中的表示方式,javascript,angularjs,Javascript,Angularjs,实际上我不知道该怎么问这个问题,而且我可能使用了不正确的术语,所以请耐心听我说 Angular设置了一个双向数据绑定,这样就可以轻松地处理两侧的数据。但是如果我想改变数据的表示方式呢 让我举一个具体的例子 我想要一个带有复选框的表单,如果直接绑定到模型,Angular会将其存储为true或false。但是,在网页的另一部分中,我希望该值显示为0或1,而不是true或false 现在我确定我可以让他们使用两个不同的变量,然后使用ng change或类似的东西来根据另一个来更新一个变量,但这似乎有些

实际上我不知道该怎么问这个问题,而且我可能使用了不正确的术语,所以请耐心听我说

Angular设置了一个双向数据绑定,这样就可以轻松地处理两侧的数据。但是如果我想改变数据的表示方式呢

让我举一个具体的例子

我想要一个带有复选框的表单,如果直接绑定到模型,Angular会将其存储为true或false。但是,在网页的另一部分中,我希望该值显示为0或1,而不是true或false

现在我确定我可以让他们使用两个不同的变量,然后使用ng change或类似的东西来根据另一个来更新一个变量,但这似乎有些过分和复杂


是否有一些特殊的元函数或我可以定义的东西,使我能够在数据来回转换时基本上转换数据?

使用
ngTrueValue
ngFalseValue
指令。它们定义了在复选框上应被视为
true
false
的内容:

例如:

<input type="checkbox" ng-model="foo"
       ng-true-value="OK"
       ng-false-value="BOO-HOO">
现在,每当
foo
更改时,
bar
将具有相应的可选值。只需记住为
条指定一个初始值(它将一开始就没有任何值)。

在控制器中

$scope.getvalue(data)
{
if(data===true)
return 1; // write what ever you want...
return 0;
}
在html页面中。。 将正常的一个绑定为
{{$scope.data1}
,另一个绑定为
{{getvalue($scope.data1)}

您可以使用
ngBind
做一些好事: 检查此plunker:

好吗?
正确或错误:{{ok}
0或1:{ok?1:0}

听起来你在找格式化程序。看看它是否能满足您的需要。OP上说“我希望该值显示为0或1”,该模型应仍然为真或假,这只是渲染视图的更改。是的,我只是在更新答案,以反映您添加评论时的情况。谢谢!这以优雅的方式实现了我所需要的。Brian关于格式化程序的评论也是我在更大范围内寻找的,但是ng true/false设置满足了我在这个特定项目中的需要。太棒了!我很高兴这是有益的:)嗯。。。三元表达式在角度表达式中不起作用。您需要改用
cond&&val1 | | val2
,否则会破坏模板:)@mingos angularjs从1.1.5版开始支持三元表达式,请检查此功能谢谢先生的启发:)。我不知道我怎么会错过这个。我们每天都学到新东西,不是吗?干杯
$scope.getvalue(data)
{
if(data===true)
return 1; // write what ever you want...
return 0;
}
<input type="checkbox" ng-model="ok"> OK?

<h2>true or false: {{ ok }}</h2>
<h2>0 or 1: {{ ok ? 1 : 0 }}</h2>