2016-07-05 15 views
1

に保存します。ボタンをクリックすると、tfoottableに追加されます。 tfootの内容は、ローカルの.htmlファイルへの.loadの結果です。私のソリューションは動作しますが、私はクリックごとに.htmlファイルを取得しています。最初のクリックの結果を変数に格納して再利用することはできますか?.load htmlファイルの内容を変数

$scope.btnClick = function() { 

    var tfoot = $('#datepicker table').find('tfoot'); 
    if(!tfoot.length) { 
     tfoot = $('<tfoot>').appendTo('#datepicker table'); 
    } 

    tfoot.load('myDir/calendar/customFooter.html'); 

} 
+0

、あなたが意味するグローバルVARとしてそれを使用中:それはこのようなものになるだろうので、あなたは、ボタンのクリックでTFOOTを表示したいですか? –

+0

データストアまたは変数を作成するか、ローカルストレージに格納することさえできます。選択肢が多すぎます。人々はそれらをたくさん使っています –

答えて

2

load()メソッドのコールバックを使用して結果を格納できます。私はあなたの$scope変数を使っていますが、必要に応じてこれを修正することができます。これを試してください: - 私はそれがより良いアプローチだろうと信じて

$scope.btnClick = function() {  
    var tfoot = $('#datepicker table').find('tfoot'); 
    if (!tfoot.length) { 
     tfoot = $('<tfoot>').appendTo('#datepicker table'); 
    } 

    if ($scope.tfootContent) { 
     tfoot.html($scope.tfootContent); 
    } else { 
     tfoot.load('myDir/calendar/customFooter.html', function(response) { 
      $scope.tfootContent = response; 
     }); 
    } 
} 
+0

'tfoot.html(scope.tfootContent)' => 'tfoot.html($ scope.tfootContent);' - '$'が見つからなかった – dinesh

+0

これは完璧に働いてくれました! –

+0

@ディネッシュ、ありがとうございました。回答が更新されました。 –

1

あなたは(>https://docs.angularjs.org/api/ng/service/ $ templateCacheこちらを参照を参照)、このためtemplateCacheを使用することができます。そうすれば、追加の作業をする必要はなく、キャッシュされます。

$scope.btnClick = function() { tfootVisible = true;} 

とhtml

<table id="datepicker"> 
    <tfoot ng-include="'templateId.html'" ng-if="tfootVisible"></tfoot> 
</table> 
+0

ありがとう、面白そうです。私はまだクリックの上にtfootを挿入する必要があります。これは、ボックス外のdatepickerの部分ではありません。 –

+0

@Oam htmlですべてのhtml操作を行い、jqueryを可能な限りコントローラに追加しないようにしてください。ビューをコーディングしているので、ng-ifを使用して最初から表示しないようにしてください。その日付ピッカーを使用する必要がない場合は、ここから日付ピッカーを確認できます:https://angular-ui.github.io/bootstrap/(datepicker popup) –

関連する問題