需要在 Angular if 语句中选中复选框

Need to get checkboxes checked in Angular if-statement

我有两个 ID 列表需要核对。如果它们匹配,则应选中该复选框。我是 angularJs 的新手,所以请帮助我。 我的代码现在看起来像这样。 All Media 是一个具有许多值的对象。 mediaIdFromSpecifikLead 只是一个带有 int id 的列表。

 <tr ng-repeat="media in allMedia">
        <div ng-repeat="mediaFromLead in mediaIdFromSpecificLead">
            <div ng-if="media.Id == mediaFromLead ">
                <td>
                    <input type="checkbox" ng-checked="true" />
                </td>
            </div>
            <div ng-if="media.Id != mediaFromLead ">
                <td>
                    <input type="checkbox" ng-checked="false" />
                </td>
            </div>
        </div>
    </tr>

使用这段代码,它甚至显示了两个复选框(一个被选中,一个为空),所以即使这样也行不通,所以我可能做错了。

编辑:所以我只希望每个媒体文件有一个复选框。如果我的 Lead 连接到该媒​​体文件,则应选中该复选框,否则应保持未选中状态。

在那里使用 ng-checked 没有意义,因为您没有绑定到任何模型。在这种情况下你可以只使用 checked (你的逻辑在 ng-if 中):

<tr ng-repeat="media in allMedia">
<div ng-repeat="mediaFromLead in mediaIdFromSpecificLead">
    <div ng-if="media.Id == mediaFromLead ">
        <td>
            <input type="checkbox" checked="true" />
        </td>
    </div>
    <div ng-if="media.Id != mediaFromLead ">
        <td>
            <input type="checkbox" checked="false" />
        </td>
    </div>
</div>
</tr>

如果你想用 ng-check 进行检查,下面的方法应该有效:

<tr ng-repeat="media in allMedia">
<div ng-repeat="mediaFromLead in mediaIdFromSpecificLead">
    <input type="checkbox" ng-checked="media.Id == mediaFromLead" />
</div>
</tr>

如果您只想为每个媒体(而不是每个 mediaFromLead)一个复选框。您将需要更改它以使用控制器中的函数来执行检查而不是 ng-checked。像这样:

<tr ng-repeat="media in allMedia">
    <input type="checkbox" ng-checked="checkIfInMediaFromLead(media.Id, mediaFromLead)" />
</tr>

checkIfInMediaFromLead 函数应该 return 一个布尔值。

首先删除你的 ng-if 条件。在这里你使用了 ng-checked 然后按照你的要求 return true false 的方式写你的条件。

<tr ng-repeat="media in allMedia">            
   <td ng-repeat="mediaFromLead in mediaIdFromSpecificLead">
     <input type="checkbox" ng-checked="media.Id == mediaFromLead" />
   </td>
</tr>

以上是乐观解

现在,如果条件为真,则复选框被选中,否则不会被选中。

注意:这里您没有指定要比较的两个 json 对象的定义。请确认您的病情。