首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ng-重复的每一次迭代的索引发送回工厂?

如何将ng-重复的每一次迭代的索引发送回工厂?
EN

Stack Overflow用户
提问于 2015-09-18 23:44:50
回答 1查看 86关注 0票数 0

我有一页缩略图使用ng-重复

代码语言:javascript
复制
<ul class="list-inline">
  <li ng-controller="IndicCtrl" ng-repeat="indic in indics" class="col-md-6 thumbnail">
    <linechart data="data" options="options" height="400"></linechart    >
  </li>
</ul>

我希望每一个缩略图显示它自己的数据,我有这个工厂和2个控制器。如何获得发送给显示函数的indic.id值:以便它将相应的数据返回给每个缩略图?

代码语言:javascript
复制
module.factory('Indic', [
 'Restangular', '$http'
 (Restangular, $http)->
   list: () -> Restangular.all('indics').getList()
   show: (indicId) -> Restangular.one('indics', indicId).get().then (chartData) ->
     $http.get(chartData.url, params: { 'api_key': chartData.api_key, 'series_id': chartData.series_id, 'num': chartData.num }).then (result) ->
       values = _.unzip result.data.series[0].data.reverse()
       dates = values[0]

       modDates = _.map dates, (x) ->
         new Date(x.replace(/(\d{4})(\d+)/, '$1-$2'))

       valueArray = values[1]

       data = []
       i = 0
       while i < dates.length
         data.push
           x: modDates[i]
           value: valueArray[i]
         i++
       return data
 ])

module.controller('IndicsCtrl', [
  '$scope', 'Indic'
  ($scope, Indic)->
    Indic.list().then((indics) ->
      $scope.indics = indics
      console.dir indics
  )
])

module.controller('IndicCtrl', [
  '$scope', 'Indic'
  ($scope, Indic)->
    Indic.show().then((data) ->
    $scope.indicId = indic.id
    $scope.data = data
    console.dir data
  )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-21 00:37:28

这应该重构到您自己的指令中。

代码语言:javascript
复制
app.directive('myLinechart,['Indic',function(Indic) {
   return {
     restrict : 'E',
     scope : {
       indic : '='
     },
     link : function(scope) {
       scope.data = Indic.show(scope.indic.id);
     },
     template : ' <linechart data="data" options="options" height="400"></linechart    >';
   }
}]);

然后你就修改你的模板

代码语言:javascript
复制
<ul class="list-inline">
 <li ng-controller="IndicCtrl" ng-repeat="indic in indics" class="col-md-6 thumbnail">
  <my-linechart indic="indic"></my-linechart >
 </li>
</ul>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32662623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档