ng-if当长度> gt时正确显示0,但长度=== 0时不出现

时间:2018-02-19 22:28:13

标签: html angularjs angularjs-ng-repeat

我有一个非常简单的ng - 如果这是基于数组的长度。如果长度大于零,则显示长度。如果它为零,则说它是空的。它在长度大于零时显示,但在零长度时不显示。有人看到我在这里失踪的东西吗?

这是我的HTML(有问题的是在第5行和第9行,但我想我会把周围的HTML放在那里以防万一有什么东西在那里,我很遗憾):

<div class="employee-box" ng-repeat="employee in sigFigCtrl.companies[$index].employees">
    <span class="glyphicon glyphicon-edit pull-right" ng-click="sigFigCtrl.toggleEmployeeEdit($index)"></span>
    <span class="glyphicon glyphicon-remove pull-right" ng-click="sigFigCtrl.deletePerson(employee._id, $index, sigFigCtrl.companies[$parent.$index].employees)"></span>
        <div ng-show="!sigFigCtrl.companies[$index].editEmployee">
            <div ng-if="sigFigCtrl.companies[$index].employees.length > 0">
                <p><b>Name:</b> {{employee.name}}</p>
                <p><b>Email:</b> {{employee.email}}</p>
            </div>
            <div ng-if="sigFigCtrl.companies[$index].employees.length === 0">
                empty array!
            </div>
        </div>
    <div ng-show="sigFigCtrl.companies[$index].editEmployee">
        <form name="editPersonForm" ng-submit="sigFigCtrl.editPerson(employee._id, $index)">
        <div class="form-group">
            <div class="col-md-12">
                <input type="text" ng-model="sigFigCtrl.editPersonName" id="name" placeholder="Name of Employee" class="form-control" required></input>
            </div>
        </div>            <div class="form-group">
        <div class="col-md-12">
            <input type="text" ng-model="sigFigCtrl.editPersonEmail" id="name" placeholder="Email of Employee" class="form-control" required></input>
        </div>
            <button>SUBMIT</button>
        </form>
    </div>
 </div>

1 个答案:

答案 0 :(得分:2)

问题很简单。你在sigFigCtrl.companies[$index].employees重复了一遍。这意味着当没有元素时它永远不会运行。将其视为for eachfor之类的循环。如果没有元素,迭代将永远不会运行。这就是为什么你从未实际到达内部ngIf,你正在测试它是否有元素。它停在根