Javascript 如何在ng repeat中使用ng repeat切换元素

Javascript 如何在ng repeat中使用ng repeat切换元素,javascript,html,angularjs,json,Javascript,Html,Angularjs,Json,我使用了一些特定的JSON,我必须重复两次,一次是针对家长,一次是针对孩子。为了避免误解,我尝试在下面提供真实的数据示例 JSON对象数组: [{"id":"1fccb481-53a0-400e-8831-80acd1793bee","euroCode":"7812BGSHABW","position":"REAR","category":"REAR_WINDOW","glassPartType":"GLASS","description":"TODO: DECODE 7812BGSHABW",

我使用了一些特定的JSON,我必须重复两次,一次是针对家长,一次是针对孩子。为了避免误解,我尝试在下面提供真实的数据示例

JSON对象数组:

[{"id":"1fccb481-53a0-400e-8831-80acd1793bee","euroCode":"7812BGSHABW","position":"REAR","category":"REAR_WINDOW","glassPartType":"GLASS","description":"TODO: DECODE 7812BGSHABW","calculatedPrice":15768.00,"operation":"REPLACE","selectionSource":"MANUAL","linkedParts":[]},{"id":"71e1dc3b-47a2-4406-970a-ef0911c93396","euroCode":"7812AGSHMVZ","position":"FRONT","category":"FRONT_WINDOW","glassPartType":"GLASS","description":"TODO: DECODE 7812AGSHMVZ","descriptionByUser":"TEST DESC","calculatedPrice":5749.50,"priceByUser":574.22,"operation":"REPLACE","selectionSource":"MANUAL","linkedParts":[{"id":"0f45cd6b-7053-4625-8ec9-87281c126e1d","partNumber":"LSD","description":"LEPÍCÍ SADA","calculatedPrice":562.50,"selectionSource":"AUTOMATIC","enabled":true},{"id":"61bbbdad-1838-4327-8c38-8808a35a403c","partNumber":"string","description":"GEL POD SENZOR","calculatedPrice":87.48,"selectionSource":"AUTOMATIC","enabled":true}]}]
在这里,您可以看到有一些对象,但其中一些(在本例中是第二个)有子对象
linkedParts
。此元素中的每一个,无论其
链接部件
还是主元素必须位于表中的

它如何查找上面的特定JSON:

我的代码如下所示:

<tr ng-repeat-start="part in axCalculation.selectedParts">
    <td class="text-center">{{part.euroCode}}</td>
    <td class="text-center">{{part.modifiedDesc ? part.modifiedDesc : part.description}}</td>
    <td class="text-center">{{part.modifiedPrice ? part.modifiedPrice : part.calculatedPrice}}</td>
    <td class="text-center">
        <button class="btn btn-info btn-xs" ng-click="toggle = ! toggle">
            <span class="glyphicon glyphicon-edit"></span>
        </button>
        <button class="btn btn-warning btn-xs" ng-click="axCalculation.remove(part.id)">
            <span class="glyphicon glyphicon-remove"></span>
        </button>
    </td>
</tr>

<!--linkedParts part start-->
<tr ng-if="part.linkedParts.length" ng-repeat="linkedPart in part.linkedParts">
    <td class="text-center" ng-class="{'line-through': linkedPart.enabled == false}">
        -- {{linkedPart.partNumber}}
    </td>
    <td class="text-center" ng-class="{'line-through': linkedPart.enabled == false}">
        {{linkedPart.modifiedDesc ? linkedPart.modifiedDesc : linkedPart.description}}
    </td>
    <td class="text-center" ng-class="{'line-through': linkedPart.enabled == false}">
        {{linkedPart.modifiedPrice ? linkedPart.modifiedPrice : linkedPart.calculatedPrice}}
    </td>
    <td class="text-center">
        <button class="btn btn-info btn-xs" ng-click="$parent.toggle = ! $parent.toggle">
            <span class="glyphicon glyphicon-edit"></span>
        </button>
        <button class="btn btn-warning btn-xs" ng-click="axCalculation.removeLinkedPart(part.id, linkedPart)">
            <span class="glyphicon glyphicon-remove"
                  ng-class="{'glyphicon glyphicon-remove': linkedPart.enabled == true,
                    'glyphicon glyphicon-share-alt': linkedPart.enabled == false}">
            </span>
        </button>
    </td>
</tr>
<!--linkedParts part end-->

<tr ng-if="toggle" ng-repeat-end>
    <td colspan="6" class="text-left">
        <div class="row noleftpadding">
            <label>Price</label>
            <input ng-model="part.priceByUser"><br>
            <label>Desc</label>
            <textarea ng-model="part.descriptionByUser"></textarea>
        </div>
        <div class="row noleftpadding">
            <button class="btn btn-primary" ng-click="axCalculation.updateValues(part.id, part.priceByUser, part.descriptionByUser)" type="button" />
        </div>
    </td>
</tr>

{{part.euroCode}}
{{part.modifiedesc?part.modifiedesc:part.description}
{{part.modifiedPrice?part.modifiedPrice:part.calculatedPrice}
--{{linkedPart.partNumber}
{{linkedPart.ModifiedEsc?linkedPart.ModifiedEsc:linkedPart.description}
{{linkedPart.modifiedPrice?linkedPart.modifiedPrice:linkedPart.calculatedPrice}
价格

描述
正如您在结尾所注意到的,当toggle为true时,应该会显示一个名为的

问题:

  • 当主元素具有
    linkedParts
    时,它的切换不会显示在其下方(这在HTML中很明显,但在我规划代码时并不适用)。因此我需要显示下面每个元素的单击来源。 所以正确的答案应该是:

  • 切换按钮atm不适用于linkedPart元素,单击该按钮什么也不做,但切换的值正在更改true/false。 因此我需要修复单击linkedPart元素显示时的
    切换


我知道这是一个复杂的问题,不容易解决,但更像是学会正确思考。我很乐意听取任何建议或工作实例。谢谢,伙计们。

根据我在你们的代码中看到的内容,链接的部分永远不会显示出来。这是正确的吗?Hi@Matheno这是我1小时的代码,因为我在代码中做了一些混乱的事情(同时尝试了一些疯狂的事情),但是它应该是正确的。为什么你认为它永远不会出现?只有基于.length的条件才有ng,并且当它的数据长度大于0时,我认为是因为条件中的“part”不存在。ng repeat循环结束于Ehm上方,请告诉我是否我错了,但它确实存在于ng repeat上方。因为这个ng重复在另一个ng重复中。第一行以ng重复开始,但ng重复结束在切换啊没关系,没有注意到-开始