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

时间:2015-03-23 11:24:34

标签: angularjs if-statement checkbox

我需要检查两个ID列表。如果匹配则应检查该复选框。我是angularJs的新手,所以请帮助我。 我的代码现在看起来像这样。所有媒体都是具有许多价值的对象。 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已连接到该媒​​体文件,则应检查该复选框,否则应保持未选中状态。

2 个答案:

答案 0 :(得分:11)

在那里使用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)。您需要将其更改为使用控制器中的功能进行检查而不是检查。像这样:

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

checkIfInMediaFromLead函数应该返回一个bool。

答案 1 :(得分:4)

首先删除你的ng-if条件。在这里你使用了ng-checked,然后根据你的要求以这样的方式写出你的条件,它会返回true。

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

以上是乐观的解决方案。

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

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