【问题标题】:ng-repeat not rendering data from arrayng-repeat 不呈现数组中的数据
【发布时间】:2017-04-07 09:40:05
【问题描述】:

我正在开发一个网络应用程序,非营利组织可以在其中创建个人资料并通过各种参数轻松搜索。在“创建和组织”表单中,我有一个嵌套数组,组织可以在其中添加他们需要的捐款。该数组存储正常(我可以添加多个捐赠),但是当我尝试使用 ng-repeat 显示它时,没有任何渲染。当我不使用 ng-repeat 并仅通过 {{ ctrl.organization.donations }} 显示时,信息会以括号和引号显示。

这是我用来添加捐款的代码(通过 newOrganization 控制器):

    function NewOrganizationController(OrganizationService, CategoryService, $stateParams, $state, $http, Auth){

    var ctrl = this;

  CategoryService.getCategories().then(function(resp) {
    ctrl.categories = resp.data;
  });

  ctrl.donations = [{text: ''}];

  Auth.currentUser().then(function(user) {
    ctrl.user = user;
  })

  ctrl.addNewDonation = function() {
    var newDonation = ctrl.donations.length+1;
    ctrl.donations.push({text: ''});
  };

  ctrl.removeDonation = function() {
      var lastItem = ctrl.donations.length-1;
      ctrl.donations.splice(lastItem);
    };

  ctrl.addOrganization = function() {
    var donations = this.donations;
    var allDonations = [];

    for (var key in donations) {
      if (donations.hasOwnProperty(key)) {
        var donation = donations[key].text;
        allDonations.push(donation);
      }
    }
    var data = {
        name: ctrl.organization.name,
        description: ctrl.organization.description,
        address: ctrl.organization.address,
        donations: allDonations.join("/r/n"),
        category_id: this.category.id
    };


    OrganizationService.createOrganization(data);
    $state.go('home.organizations');
  };

}


angular
  .module('app')
  .controller('NewOrganizationController', NewOrganizationController);

这是我用来在我的展示页面上显示数组的代码(这是用括号显示的,即需要捐款:["food", "clothing"]):

<h5>{{ ctrl.organization.donations }}</h5>

这是不向页面呈现任何内容的 ng-repeat 代码:

<li class="list-group-item" ng-repeat="donation in donations track by $index">
   {{ donation }}
 </li>

我尝试在 {{donation}} 括号内使用 .join(', '),但这未被识别为函数。

编辑:在接受 AJ 的建议后,这里是出现的屏幕截图......有人知道如何解决这个问题吗?

seems that my array is showing up in table form, with each row containing one character

任何帮助将不胜感激。这是 github 存储库的 link,以防您想查看其他内容或获得更大的图景。

【问题讨论】:

    标签: javascript angularjs arrays angularjs-ng-repeat


    【解决方案1】:

    您需要使用与h5 相同的变量名

    <li class="list-group-item" ng-repeat="donation in ctrl.organization.donations track by $index">
       {{ donation }}
    </li>
    

    【讨论】:

    • AJ - 感谢您的回答!当我这样做时确实会出现一些东西,但它是以表格形式出现的,并且每一行都有一个字符。
    • 这是一个列表项,你为什么希望它是表格形式?如果你需要帮助,你将不得不提供更多的 HTML/CSS
    • 我不希望它以表格形式出现。我在原始帖子中添加了一个屏幕截图,说明 $index 的 ctrl.organization.donations 跟踪功能。也许 table 不是正确的词,但我从未见过我以前遇到过的问题。
    • 看起来ctrl.organization.donations是一个字符串而不是一个数组
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2014-03-14
    • 2016-02-12
    • 1970-01-01
    相关资源
    最近更新 更多