使用Angular更改JSON中存储的布尔值
Changing a boolean stored in JSON with Angular?
当用户单击填充有JSON的表行时,我试图更改布尔值。例如,我有这个。。。
$scope.prices = {
"Prices": [
{
"Code": "edl",
"Selected": false
},
{
"Code": "ead",
"Selected": false
}
]
}
然后我把它绑在桌子上。。。
<table>
<tr ng-click="change(item.code)" ng-repeat="item in prices">
<td>{{prices.Code}}</td>
</tr>
</table>
当用户点击一行时,会启动更改功能,然后将所选值更改为true或false
$scope.change = function (itemCode) {
//update the clicked code selcted value to True/False
// first check if its true or false
// then change it accordingly
// Please excuse my terrible attempt!
if(!$scope.prices.code.selected){
$scope.prices.code.selected = true
} else {
$scope.prices.code.selected = false
}
};
因为我不确定如何从变更功能中实现这一点。或者还有别的办法吗?感谢
首先,在获得实际的价格数组之前,在$scope.prices
中增加一个级别没有多大意义。
换句话说,不是有:
$scope.prices = {
"Prices": [
{
"Code": "edl",
"Selected": false
},
// etc.
]
};
你应该把数组直接向上,这样你就可以很容易地绑定到它:
$scope.prices = [
{
"Code": "edl",
"Selected": false
},
// etc
];
然后你可以这样绑定它:
<table>
<tr ng-click="change(item)" ng-repeat="item in prices">
<td>{{item.Code}}</td>
</tr>
</table>
最后,现在$scope.change()
获得了整个项目,而不仅仅是代码,您可以直接切换其Selected
属性:
$scope.change = function (item) {
item.Selected = !item.Selected;
};
首先进行一些更正。
-
请参阅
$scope.prices
中的阵列Prices
。 -
更改
change()
的签名,使其获得对所单击项目的引用。<table> <tr ng-click="change(item)" ng-repeat="item in prices.Prices"> <td>{{item.Code}}</td> </tr> </table>
现在实现更改方法
$scope.change = function (item) { if (item.Selected) { item.Selected = false; } else { item.Selected = true; } };
这里是另一个不涉及函数的更干净的解决方案,如果您谨慎使用内存,这种方法将使您免于从$scope中删除函数。
<table>
<tr ng-click="item.Selected = !item.Selected" ng-repeat="item in prices">
<td>{{item.Code}}</td>
</tr>
</table>
乐于助人!
相关文章:
- 如何从javascript/jquery中的复选框中获取布尔值
- KendoUI网格行过滤器,带有布尔值下拉列表
- php布尔值's小写AND大写和数字布尔值'可以接受
- 正在数组中存储键值对
- select中布尔值的Angularjs ng值不起作用
- 为什么数组在对象内部迭代对象时存储重复值
- 在url参数javascript中存储键值对列表
- 由于布尔值的变化,Django视图中的字符串格式不正确
- Extjs 4网格:根据存储文本值在单元格中放置图标
- MeteorJs Alded autoform,如何从布尔值复选框中获得所需值
- 在字符串中搜索模式并存储其值
- 将字符串动态转换为布尔值
- 将布尔值存储在隐藏字段中以进行表单处理
- 类型错误:布尔值不是 Angular 中登录函数的函数
- 使用Angular更改JSON中存储的布尔值
- 无法使用HTML5 Web存储保存布尔值的解决方法
- 将存储在cookie中的令牌发送到服务器并获得布尔值返回
- 如何使用localstorage将列表中的所有复选框布尔值存储到数组中
- 存储一个布尔值或整型值,并在页面加载后检查/更改它的值
- 用javascript'存储布尔值;s localStorage