gpt4 book ai didi

angularjs - 如何将 ng-model 绑定(bind)到 ng-checked 框

转载 作者:行者123 更新时间:2023-12-03 08:12:08 25 4
gpt4 key购买 nike

我在将 Angular ng-check 绑定(bind)到 ng-model 时遇到问题,即 ng-model 无法识别我的复选框的选定状态。

这是一个描述(它是一个更大的代码库,但我已经定制以最小化代码)。

在 JavaScript 中加载页面时,我初始化我的产品并设置默认值:

$scope.products = {}
$scope.SetProductsData = function() {
var allProducts;
allProducts = [
{
id: 1,
name: "Book",
selected: true
}, {
id: 2,
name: "Toy",
selected: true
}, {
id: 3,
name: "Phone",
selected: true
}]

我的 View 中有一个主控件,其中列出了每 3 个产品(书籍、玩具和手机)的复选框:默认情况下选中这些
<div style="float:left" ng-init="allProducts.products = {}" >
<div ng-repeat="p in Data.products">
<div style="font-size: smaller">
<label><input id="divPlatorm" ng-model="products[p.name]" ng-init="products[p.name] = true" type="checkbox"/>
{{p.name}}</label>
</div>
</div>
</div>

然后是在行中重复相同产品的表:
<div ng-repeat="line in lineProducts" ng-init="line.products = {}">
<div id="sc-p-enc" ng-repeat="p in Data.products">
<div id="sc-p-plat" style="font-size: smaller">
<label id="pl-label"><input ng-checked="products[p.name]" ng-model="line.products[p.name]" ng-init="line.products[p.name] = true" type="checkbox"/>
{{p.name}}</label>
</div>
</div>
</div>

当我选中/取消选中主产品时,相应的复选框会在行中发生变化。因此,如果我有 100 行(书籍、玩具和电话)未选中的玩具,我可以看到行中所有玩具的位置。

当我将数据发送到我的 Controller 时,即使它们未被选中,我仍然可以看到所有 Toys = true。

如果我亲自去该行,然后取消选中每个玩具并将数据发送到我的 Controller Toys = False。

当从主复选框控制时,如何使复选框的选中状态发生变化?

我已按照此处找到的帖子进行操作,但我认为这不适用于我的情况:
AngularJS: ng-model not binding to ng-checked for checkboxes

最佳答案

我刚刚通过使用“ng-init”和“ng-checked”自己解决了这个问题---

  • ng-checked - 在表单加载时“选中”复选框
  • ng-init- 将我的复选框 html 值属性绑定(bind)到模型

  • 上面有评论指出以这种方式使用 ng-init 不好,但没有提供其他解决方案。

    这是一个使用 ng-select 而不是 ng-checked 的示例:
    <select ng-model="formData.country"> 
    <option value="US" ng-init="formData.country='US'" ng-selected="true">United States</option>
    </select>

    这将“US”绑定(bind)到模型 formData.country 并在页面加载时选择值。

    关于angularjs - 如何将 ng-model 绑定(bind)到 ng-checked 框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19143037/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com