当前位置: 首页 > 面试题库 >

AngularJS:遍历对象时代码不起作用

孙朝明
2023-03-14
问题内容

我正在尝试employeeempctrl模板中的控制器填充对象列表。

这是控制器:

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>

用户界面中未显示任何内容。
相反,如果我$scope.employees在控制器中编写代码,它将起作用:

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

由于我知道$scope.<everything>在控制器中要做的事情很诱人,因此我在尝试避免$scope尽可能多地使用。

如果有人能证明的正确使用$scope和差异betwee
alias.abc$scope.abc(其中alias是控制器的别名),我应该心存感激。


问题答案:

问题是this您正在访问内部populateTable函数而不是this控制器函数中存在的函数。

最好将this变量保留在某个变量内,这样,通过获取变量,您可以确保引用的对象正确。

controller

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();
});

有关更多详细信息,我强烈建议您阅读 本文。



 类似资料:
  • 但是,我编写的这段代码不起作用: UI中不会显示任何内容。 相反,如果我在控制器中编写,它可以工作: 因为我知道在控制器中执行是多么诱人,所以我尽量避免使用。

  • 通过一次执行一行代码或一个函数,您可以观察数据和页面中的更改,来确切了解发生了什么。您还可以修改脚本中使用的数据值,甚至可以修改脚本本身。 为什么这个变量值为20而不是30?为什么这行代码似乎没有任何效果?为什么这个标志为真时应该是假的?每个开发人员都面临着这些问题,并逐步通过代码找出来。 设置断点后,返回页面并正常使用,直到运行到断点,将暂停页面上的所有JavaScript,焦点转移到DevTo

  • 问题内容: 我正在尝试遍历JSON对象以导入数据,即标题和链接。我似乎无法掌握过去的内容。 JSON: 我尝试使用字典: 此代码仅在之前打印信息。( 忽略贾斯汀·比伯的曲目 :) 问题答案: 您加载JSON数据有些脆弱。代替: 您实际上应该这样做: 您不应该将“ JSON对象”视为什么。您所拥有的是清单。该列表包含两个字典。字典包含各种键/值对,所有字符串。当您这样做时,您将要求列表中的第一个字典

  • 本文向大家介绍flex 遍历Object对象内容的实现代码,包括了flex 遍历Object对象内容的实现代码的使用技巧和注意事项,需要的朋友参考一下 一直以为遍历Object只能obj.name这种方式,今天做数据比较,才发现   这种方式,其实觉得Object和java里的HashMap很类似,都是命值对。 具体例子:

  • 问题内容: 我很难找到一种以我想要的方式遍历此JSON对象的方法。我在这里只使用Javascript。 首先,这是对象 现在,我正在尝试基本方法来访问此对象上的每个dialog_trunk。理想情况下,我想遍历对象,并为每个主干显示其值。 我已经尝试过使用for循环动态地生成dialog_trunk的名称/编号,但是我无法使用对象名称的字符串来访问该对象,因此我不确定从何处去。 问题答案: 为此使

  • 本文向大家介绍golang遍历时修改被遍历对象的示例详解,包括了golang遍历时修改被遍历对象的示例详解的使用技巧和注意事项,需要的朋友参考一下 前言 很多时候需要将遍历对象中去掉某些元素,或者往遍历对象中添加元素,这时候就需要小心操作了。 对于go语言中的一些注意事项我做了总结和示例,留下点笔记。 遍历切片 1.遍历切片时去掉元素,错误示例: 最终报错panic: runtime error: