3
私は<tr>
と<td>
を含めたいと思っていますが、私はそれを指示で行うことはできません。 <td>
または<td>
が存在しないかのように無視し続けます。ここで私が達成しようとするものです。<tr>要素を角度指令(transclude)に含めるにはどうすればよいですか?
<my-table>
<tr>
<td>hello</td>
<td>world</td>
</tr>
</my-table>
ここではjavascriptのだ:
angular.module('app', [])
.controller('Controller', ['$scope', function($scope) {
}])
.directive('myTable', function() {
return {
restrict: 'E',
transclude: true,
templateUrl: 'my-table.html'
};
});
私-table.html:
<my-table class="ng-isolate-scope"><table ng-transclude="">
hello <-- no <tr> nor <td> here just plain text
world
</table></my-table>
:
<table ng-transclude>
</table>
上記のコードは、以下のような結果に
例:PLUNKR
これらの '
@RogerNgそれはまさに私が欲しくないものです。私はカスタマイズ可能な '
の代わりにそれをイメージすると、テーブルがないとhtmlが無効になります。これは、それが全部を集計したhtmlの – Deep
答えて
これは転写物の問題ではありません。テーブルがない
:<tr>
は無効なので、無効なhtmlの問題です。したがって、角度はブラウザtext
から取得され、DOM要素では取得されません。は、その後、あなたがリンク機能で
tr
年代とともにブラウザによって作成されたtbody
要素へのアクセスを取得し、それを処理できるようになります:だから、HTML内<table>
タグを持っている必要があります、またはテンプレートに
ng-transclude
を使用してください。しかし、私はあなたがトランスコードされた部分を後で再利用したいと思うかもしれないと推測しているかもしれません。出典
2016-11-24 06:50:54
あなたはNG-trasclude
テンプレート
index.htmlを
を使用するように弱々しい場合は、以前の私のコメントに追加、あなたはこの本のように多少似て達成することができますプランカ:https://plnkr.co/edit/u85h0sJL50k2gESfI6RT?p=preview
出典
2016-11-24 06:56:27 Deep
関連する問題