2014-12-08 17 views
6

Bir html gövdesinde, başlık için ve şablon için başka 2 şablon var. Üstbilgi şablonu, bir ngTable verilerini bir content.html şablon dosyasında bulunan bir csv dosyasına using ngTable Export dışa aktarması beklenen bir save and download düğmesine sahiptir, ancak bu dışa aktarma, aynı şablonda dışa aktarmak için tıklama işleyicisiyle bir bağlantı etiketi yerleştirdiğimde çalışır .Angularjs içinde farklı bir şablondan tablo verileri için csv'ye dışa aktarma nasıl tetiklenir?

content.html (şablon 1)

<a class="btn btn-default export-btn" ng-click='csv.generate($event, "report.csv")' href=''>Export</a> <!-- this works --> 
<table ng-table="tableParams" show-filter="true" class="table" export-csv="csv"> 
     <tr ng-repeat="item in $data" height="10px" class="animate" ng-animate="{enter: 'animate-enter', leave: 'animate-leave'}"> 
      <td data-title="'Date'" align="center" filter="{ 'date': 'text' }" sortable="'date'">{{ item.date | date: 'd MMM yyyy' }}</td> 
      <td data-title="'Label'" align="center" filter="{ 'label': 'text' }" sortable="'label'">{{item.label}}</td>   
      <td data-title="'Count'" align="center" filter="{ 'count': 'text' }" sortable="'count'">{{item.count}}</td> 
     </tr> 
</table> 

başlık.html (şablon 2)

<button class="save-button" ng-click='csv.generate($event, "report.csv")'></button> <!-- does not work--> 

ayrı şablonda bir düğme ile csv için tablo içeriği ihraç bana yardım edin.

Güncelleme

Unfinished plunker link.. export not working somehow in plunker

cevap

6

sizin plunkr içinde bağlantı etiketi bir dosya olarak csv indirmek için tarayıcı neden olur ng-href="{{ csv.link() }} kayıp. İstediğiniz çünkü

$scope.exportFile = function($event, fileName) { 
    $scope.csv.generate($event, "report.csv"); 
    location.href=$scope.csv.link(); 
}; 

Ama:

bunun yerine bir çapa etiketinin bir düğme kullanmanız gerekiyorsa, sonra olabilir csv.generate arar ve bir işlevle simulate hrefcsv.link() tarafından döndürülen değere location.href setleri Farklı şablon dosyalarından gelmek için düğme ve tablo, muhtemelen different child scopes'a bağlı.

<table ng-table="tableParams" export-csv="helper.csv"> 

Ardından için kumandayı değiştirmek: Bunun için hızlı bir çözüm $parent kapsamında bulunmayan bir nesne üzerinde create the csv helper için ihracat yönergesini anlatmak İşte

$scope.helper = { 
    csv: null //will be replaced by the export directive 
}; 

$scope.exportFile = function($event, fileName) { 
    $scope.helper.csv.generate($event, "report.csv"); 
    location.href=$scope.helper.csv.link(); 
}; 

bir çalışma demo: http://plnkr.co/edit/a05yJZC1pkwggFUxWuEM?p=preview

+1

belki de bilgisayarımda bir sorun var, ancak plunker demo IE – user2378769

+0

üzerinde çalışmıyor. Burada aynı zamanda, bulamacı Chrome üzerinde çalışmıyor. Ve projemde de ng-tablo-ihracat çalışması yapamıyorum (helper.csv boş değerde kalıyor). Ancak, ng-table-dynamic kullanıyorum, belki standart bir ng-table ile denemeliyim. – PJP

+0

@PJP - ng-table kütüphanesine bozuk linkler yerleştirdim ve plunker tekrar çalışıyor. bazalt-cms.com yerine ng-table.com adresinde kütüphane yer almaktadır. –

İlgili konular