javascript - Angularjs - 如何使复选框像选择一样工作?
问题描述
我不知道如何解释,但如果我没记错 angularJS 会自动绑定所有值(选项),所以当用户从列表中选择某些内容时,它会通过模型填充,对吗?
我怎样才能用复选框实现类似的效果?我希望选择超过 1 个值,然后选择一个复选框,如果只有一个但在代码中没有改变太多。
所以我的选择现在看起来像这样:
<div ng-repeat="event in allElements"
<select ng-model="event.selectedElement" ng-change="updateSelectedElements(event);"
<option value>Select date</option>
<option value>{[{ getDate(event.elements) }]}</option>
</select>
</div>
updateSelectedElements 只是一个对列表做一些事情的函数。
我如何使用相同的逻辑但使用复选框?因此,如果复选框是 optin,它会像 select 一样“绑定”选择的元素?我有点迷路的原因是复选框值只是真/假,但选择实际上有列表元素作为选项,对吧?
尝试过类似的东西:
<input type="checkbox" ng-model="event.selected" ng-change="updateSelectedElements(event)" />
但不幸的是,我为 event.selectedElement 获得了 null 而对于 select 它有效。我需要通过某些功能手动设置那个 event.selectedElement 吗?我不确定它是如何工作的。
解决方案
你可以尝试这样的事情:
<input type='checkbox' ng-repeat="fruit in fruits"
ng-checked="checkedFruits.indexOf(fruit) != -1" ng-click="toggleCheck(fruit)">
function SomeCtrl ($scope) {
$scope.fruits = ["apple, orange, pear, naartjie"];
$scope.checkedFruits = [];
$scope.toggleCheck = function (fruit) {
if ($scope.checkedFruits.indexOf(fruit) === -1) {
$scope.checkedFruits.push(fruit);
} else {
$scope.checkedFruits.splice($scope.checkedFruits.indexOf(fruit), 1);
}
};
}
推荐阅读
- python - 2D 数组到 3D 数组的数量,扩展第三维
- xml - xslt 如何获得非键控节点?
- c - 尝试打开驱动器时,在莫哈韦沙漠中打开系统调用返回 -1
- c - 我如何在 sscanf 中使用 %n
- ruby-on-rails - omnaith-auth0 gem 的自定义设置
- android - 如何使扫描二维码后出现的纯文本可点击并将用户重定向到浏览器?
- angular6 - Angular Template Driven Form Control - 即使我编辑了表单数据,Dirty 也不会变为 true
- c++ - 无法将正确的 lambda 传递给 emscripten_set_main_loop
- react-native - 使用 wix@react-native-navigation 运行 react-native 应用程序时出错
- gtk - Gtk按钮奇怪的文字颜色