2013-05-21 2 views
6

私はこのようなディレクティブ書かれています:角度のルート要素とは何ですか?

app.directive('headersort', function() { 
    return { 
     restrict: 'E', 
     scope: { 
      sortBy: '=', 
      title: '=' 
     }, 
     template: '<th>{{ title }}</th>', 
     replace: true, 
     link: function (scope, element, attributes) { 
      scope.sortBy = attributes.sortBy; 
      scope.title = attributes.title; 

     } 
    }; 
}); 

をそして、私はこのようにそれを使用します。

<headersort sortBy="Name" title="Product"> 

私が欲しいものは<headersort sortBy="Name" title="Product"><th>Product</th>に置き換えられていることです。しかし、私はというエラーを取得:

Template must have exactly one root element. was: <th>{{ title }}</th>

をしかし、私は右の1つのルート要素を持っていますか?私のルート要素は<th>なので、なぜ角を投げているのですか?ルート要素の条件/定義とは何ですか?

+0

にあなたのHTMLを変更するには、また、あなたのリンク機能のすべてのコードを使用すると、スコープ宣言を持っている理由ということ、必要とされていません。 – TheHippo

答えて

5

this号をご覧ください。

restrict: 'E'からrestrict: 'A'にあなたのディレクティブを変更してみてくださいと<th headersort sortBy="Name" title="Product"></th>

+0

ありがとうございます。問題へのリンクは確かに私の問題です。私は現在、テーブルヘッダーではなく、属性として解決しています。 – Martijn

0

私は、table要素についてのその意見を考えています。あなたはどこかでそれを定義しましたか?

関連する問題