我有一页缩略图使用ng-重复
<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值:以便它将相应的数据返回给每个缩略图?
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
)发布于 2015-11-21 00:37:28
这应该重构到您自己的指令中。
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 >';
}
}]);然后你就修改你的模板
<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>https://stackoverflow.com/questions/32662623
复制相似问题