ng-repeat不从数组渲染数据

时间:2017-04-07 00:52:01

标签: javascript angularjs arrays angularjs-ng-repeat

我正在开发一个网络应用程序,非营利组织可以创建个人资料,并可以通过各种参数轻松搜索。在“创建和组织”表单中,我有一个嵌套数组,组织可以在其中添加所需的捐赠。数组存储正常(我可以添加多个捐赠),但是当我尝试使用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,以防您想要查看其他内容或获得更大的图片。

1 个答案:

答案 0 :(得分:0)

您需要使用适用于h5

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