【问题标题】:Assign value in ng-repeat with function in controller (ANGULAR JS)使用控制器中的函数在 ng-repeat 中赋值(ANGULAR JS)
【发布时间】:2018-12-02 17:02:39
【问题描述】:

我正在尝试用 ng-repeat 中的函数分配一个值。 此 ng 重复显示用户 ID 列表。我正在尝试调用一个函数,该函数通过用户 ID 返回名称并打印用户的名称。

我尝试过使用 ng-init,但它不起作用。

<label ng-repeat="id in listOfUsersID">
  <p ng-init='text=getNameByID(id.id_user)''> Name is {{text}} 
  </p>

有人有想法吗?

【问题讨论】:

  • “不起作用”没有帮助。 idownvotedbecau.se/itsnotworking 使用标准调试技术来隔离问题。
  • 不要使用 ng-init。文档清楚地说明不应该使用它,并说明您应该做什么:向控制器添加代码,提供视图所需的数据:用户数组。
  • 即使这样工作,这也将是非常低效的。您不应该向ng-repeat 中的元素添加函数,因为ng-repeat 不是单个循环。它在每次迭代中评估每个函数。您正在渲染的列表越大,这种情况就越糟糕。相反,您应该将稍后要呈现的属性添加到您接收数据的控制器或服务中的对象中。

标签: angularjs controller init assign


【解决方案1】:

试试这个

<label ng-repeat="id in listOfUsersID">
  <p> Name is {{ getNameByID(id.id_user) }}</p>

但是在你的控制器中,函数必须像这样在 $scope 变量中。

$scope.getNameByID = function(id){
    . . . 
    return(text);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    相关资源
    最近更新 更多