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