通过ng-repeat将数组传递给指令

时间:2016-06-06 14:00:41

标签: javascript arrays angularjs

我现在遇到两个问题。

第一个问题:

我有一个包含一些值和一些数组的数组。我使用ng-repeat循环遍历此数组,并将值(包括数组)发送到指令。但是,当我看到指令的结尾时,它只是未定义。

以下是代码:

查看

<div class="row" ng-repeat="item in items | filter: nameFilter">
    <analytics-table name="item.name"
                     app="item.app"
                     dates="item.date"
                     demo_cpa="item.demo_cpa"
                     bezoek_demo="item.bezoek_demo"
                     demo_trader="item.demo_trader"
                     download_bezoek="item.download_bezoek"
                     download_cpa="item.download_cpa"
                     download_demo="item.download_demo">
    </analytics-table>
</div>

指令

app.directive('analyticsTable', function() {
return {
    restrict: 'E',
    scope: {
        name: '=name',
        app: '=app',
        dates: '=dates',
        demo_cpa: '=demo_cpa',
        bezoek_demo: '=bezoek_demo',
        demo_trader: '=demo_trader',
        download_bezoek: '=download_bezoek',
        download_cpa: '=download_cpa',
        download_demo: '=download_demo'
    },
    templateUrl: '../directives/analytics-table.html'
};
});

当我做console.log($scope.app)(也是一个数组)时,它只是给了我正确的答案。但是当我尝试console.log($scope.demo_cpa)时,它会给我'undefined'

我在这里做错了什么?

第二个问题/问题是:

如果我这样做,是否有可能根据另一个数组的循环索引得到一个数组的索引值,例如

<tr ng-repeat="date in dates">
            <td>{{date}}</td>
            <td>{{download_bezoek[$index]}}</td> <-- the index of the ng-repeat
            <td>{{download_demo[$index]}}</td>   <--
            <td>{{download_cpa[$index]}}</td>    <--
            <td>{{bezoek_demo[$index]}}</td>     <--
            <td>{{demo_trader[$index]}}</td>     <--
            <td>{{demo_cpa[$index]}}</td>        <--
        </tr>

1 个答案:

答案 0 :(得分:0)

更改您的指令属性,如下面的代码:

 <analytics-table name="item.name"
                 app="item.app"
                 dates="item.date"
                 demo-cpa="item.demo_cpa"
                 bezoek-demo="item.bezoek_demo"
                 demo-trader="item.demo_trader"
                 download-bezoek="item.download_bezoek"
                 download-cpa="item.download_cpa"
                 download-demo="item.download_demo">
</analytics-table>

<强>指令

 app.directive('analyticsTable', function() {
 return {
    restrict: 'E',
    scope: {
          name: '=name',
          app: '=app',
          dates: '=dates',
          demoCpa: '=demo_cpa',
          bezoekDemo: '=bezoek_demo',
          demoTrader: '=demo_trader',
          downloadBezoek: '=download_bezoek',
          downloadCpa: '=download_cpa',
          downloadDemo: '=download_demo'
       },
     templateUrl: '../directives/analytics-table.html'
   };
  });