当前位置: 首页 > 知识库问答 >
问题:

AngularJS:迭代对象时代码不起作用[重复]

阎啸
2023-03-14
app.controller('employeeController', function ($scope, employeeService) {

    this.employees = {};

    this.populateTable = function (data) {

        this.employees = data;
    };

    var error = function (err) {
        console.log("Error: " + err);
    };

    // Call Service to List all Employees
    console.log("Service called to populate table.");
    employeeService.output().then(this.populateTable, error);
    this.populateTable();

});

但是,我编写的这段代码不起作用:

<div ng-repeat="employee in empctrl.employees.allEmployees" class="table_row">
    <div class="table_column" style="width:2%">{{ $index + 1 }}</div>
    <div class="table_column" style="width:8%">{{ employee.employeeName}}</div>
    <!-- 7 more columns -->
</div>

UI中不会显示任何内容。
相反,如果我在控制器中编写$scope.employeese,它可以工作:

<div ng-repeat="employee in employees.allEmployees" class="table_row">

因为我知道在控制器中执行$scope. 是多么诱人,所以我尽量避免使用$scope

共有1个答案

云丰
2023-03-14

问题是populatetable函数中访问的这个不是控制器函数中的这个

最好将这个变量保存在某个变量中,这样您就可以确保引用的对象是正确的。

控制器

app.controller('employeeController', function ($scope, employeeService) {
    var vm = this;
    vm.employees = {};

    vm.populateTable = function (data) {
        vm.employees = data;
    };

    var error = function (err) {
        console.log("Error: " + err);
    };

    // Call Service to List all Employees
    console.log("Service called to populate table.");
    employeeService.output().then(vm.populateTable, error);
    vm.populateTable();
});
 类似资料:
  • 问题内容: 我正在尝试从模板中的控制器填充对象列表。 这是控制器: 但是,我编写的这段代码无法正常工作: 用户界面中未显示任何内容。 相反,如果我在控制器中编写代码,它将起作用: 由于我知道在控制器中要做的事情很诱人,因此我在尝试避免尽可能多地使用。 如果有人能证明的正确使用和差异betwee 和(其中是控制器的别名),我应该心存感激。 问题答案: 问题是您正在访问内部函数而不是控制器函数中存在的

  • 我有一个要迭代通过的JSON对象。 我正在使用映射这些值,我认为这是处理对象的正确方法: 但是,当我希望对象返回时,上面的返回以下内容: 为什么它返回的是值,而不是对象?

  • 问题内容: 我正在尝试迭代由numpy.linspace生成的值的数组: 这段代码在我的办公室计算机上工作正常,但是今天早上我坐下来在另一台机器上在家工作,出现了此错误: 只是一个浮点数数组,脚本在打印内容时没有问题-只是显然对它们进行了迭代。关于导致它损坏的原因的任何建议以及可能的解决方法? 问题答案: 给您一维NumPy数组。例如: 因此: 无法工作。您将需要某种二维数组,在第二维中具有两个元

  • 问题内容: 我正在尝试运行一个for循环。这是我遇到问题的代码部分: 因此,我的目的是遍历aldurstengd_ororka,对于字典中的每个“年龄”元组,我为元组中的每个“项目”运行另一个for循环。我得到的错误是 TypeError:“ int”对象不可迭代 问题答案: 如果是字典,则此表达式: 是一个错误。也许您的意思是: 编辑:您看到的错误是非常有趣的,我确实使用此代码段重现了它: 代码

  • 问题内容: 有没有一种方法来获取数组的迭代器?像这样: 问题答案: 您可以使用: 它只是将数组包装在列表实现中,以便您可以在其上调用方法。 请注意,这种方法仅适用于对象数组。对于原始数组,您将必须实现自己的迭代器(例如,使用匿名类)。 从Java 8开始,您还可以使用开箱即用的迭代器(并且如果是或,也可以使此代码进行编译: 尽管您将无法使用原始数据类型,并且因为没有相应的流实现。但是,您可以使用以

  • 如何迭代对象及其子对象的属性?我在中使用了,但无法获取歌曲信息:/