【问题标题】:AngularJS calling a function from html element after an array is populated through ajax通过ajax填充数组后,AngularJS从html元素调用函数
【发布时间】:2018-04-15 05:24:13
【问题描述】:

首先我应该说我是 angularjs 的新手

<span grv-icon-comm-type="vm.communityViewHelper.getTypeIcon(vm.findFromPendingCommunityList(invite.community_id))" ng-class="vm.communityViewHelper.getColorClass(vm.findFromPendingCommunityList(invite.community_id))"></span>

在上面的代码中,invite.community_id 与页面加载一起出现。但是vm.findFromPendingCommunityList() 方法正在循环通过由 ajax 响应填充的数组。在这种情况下,当调用该函数时,该数组为空,但在一段时间后,该数组由 ajax 调用填充。

现在我的问题是如何获得那里的价值?

【问题讨论】:

    标签: angularjs ajax


    【解决方案1】:

    您可以从您的 ajax 调用中返回一个承诺,当该承诺在 .then 函数中得到解决时,您可以将这些值分配给您的数组 - 一旦它们被填充,angularjs 的内置双向数据绑定将完成这项工作为您 - 遍历现在填充的数组。

    请参阅:用于完成此任务的内置服务:$http、$q 或 $resource(查看文档)。

    测试这一点的简单方法是使用内置的 $timeout 服务(它在内部使用 Promise)并将一个数组分配给范围,然后在模板中迭代这个数组。 (你应该在你的控制器中包含 $timeout)

    $timeout(function(){
        $scope.data = [1,2,3,4,5,6,7,8]
    }, 5000)
    

    然后在模板中

    <ul ng-repeat="item in data">{{item}}</ul>
    

    您会看到数组在 $timeout 延迟 5 秒后被迭代。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-04-24
      • 1970-01-01
      • 2015-08-16
      • 2011-08-14
      • 2019-09-22
      • 1970-01-01
      • 2022-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多