javascript – 如果选中,则对象的AngularJS数据绑定复选框
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如果选中,则对象的AngularJS数据绑定复选框,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2861字,纯文字阅读大概需要5分钟。
内容图文
![javascript – 如果选中,则对象的AngularJS数据绑定复选框](/upload/InfoBanner/zyjiaocheng/756/db2cfedd05594332b341956dfceb86d8.jpg)
我有一个JSON对象,我用ng-repeat重复,键是字符串,值是一个数组.我将每个值列为复选框.我想创建第二个对象,其中包含仅检查的复选框的列表.我想用键和值保留对象的结构.
我不确定如何正确地将它绑定到模型,以便保留结构.
这是我的HTML
<h3 >Dynamic data binding in AngularJS</h3>
<div ng-app ng-controller="Controller" class="container">
<h4>Inputs</h4>
<ul ng-repeat="(parent, values) in inputs">
<span>{{parent}} : </span>
<li ng-repeat="value in values"><label>{{value}}
<input type="checkbox" ng-model="output[parent]" ng-checked="output[parent]" value="value" >
</input></label>
</li>
</ul>
<h4>Outputs</h4>
<ul ng-repeat="(key,value) in inputs">
<li>
{{key}} : {{output[key]}}
</li>
</ul>
</div>
和我的JS
function Controller($scope) {
$scope.output = {};
$scope.inputs = {'category': ['one','two','three'], 'color':['blue','green']};
}
有一些简单的方法可以做到这一点吗?我觉得我错过了一些小事,这一切都很好用.
解决方法:
我的示例在推荐的语法中使用了您的角度逻辑(非全局).我纠正了你的标记也有几个问题.
在此示例中,ng-model =“x”是我不使用的占位符,但必须存在ng-model或引发错误.我正在使用ng-change来处理复选框和$scope.outputs之间的链接.
标记:
<div ng-app="myApp" ng-controller="myCtrl">
<h3 >Dynamic data binding AngularJS</h3>
<h4>Inputs</h4>
<ul>
<li ng-repeat="(typeKey, typeVal) in inputs">
<span>{{typeKey}} : </span>
<ul>
<li ng-repeat="value in typeVal">
<label>{{value}}
<input
type="checkbox"
ng-model="x"
ng-change="setOutput(typeKey, $index, value)"
>
</label>
</li>
</ul>
</li>
</ul>
<h4>Outputs</h4>
<ul ng-repeat="(key,value) in inputs">
<li>{{key}} : {{outputs[key]}}</li>
</ul>
</div>
JavaScript的:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.outputs = {};
$scope.inputs = {
'category': ['one','two','three'],
'color':['blue','green']
};
$scope.setOutput = function(typeKey, $index, value) {
$scope.outputs[typeKey] = $scope.outputs[typeKey] || [];
$scope.outputs[typeKey][$index] = value;
};
});
另一种方案
首先,我使用ng-init动态地将输入的第一级属性添加到输出.然后,您只需将ng-model和ng-checked属性设置为输出中的正确位置.
标记:
<div ng-app="myApp" ng-controller="myCtrl">
<h3 >Dynamic data binding AngularJS</h3>
<h4>Inputs</h4>
<ul>
<li
ng-repeat="(typeKey, typeVal) in inputs"
ng-init="outputs[typeKey] = outputs[typeKey] || {}">
<span>{{typeKey}} : </span>
<ul>
<li ng-repeat="value in typeVal">
<label>{{value}}
<input
type="checkbox"
ng-model="outputs[typeKey][value]"
ng-checked="outputs[typeKey][value]"
value="outputs[typeKey][value]"
>
</label>
</li>
</ul>
</li>
</ul>
<h4>Outputs</h4>
<ul ng-repeat="(key,value) in inputs">
<li>{{key}} : {{outputs[key]}}</li>
</ul>
</div>
JavaScript的:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.outputs = {};
$scope.inputs = {
'category': ['one','two','three'],
'color':['blue','green']
};
});
内容总结
以上是互联网集市为您收集整理的javascript – 如果选中,则对象的AngularJS数据绑定复选框全部内容,希望文章能够帮你解决javascript – 如果选中,则对象的AngularJS数据绑定复选框所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。