私は次の設定をしています:
アプリ/指令
var app = angular.module("MyApp", []);
app.directive("adminRosterItem", function () {
return {
restrict: "E",
scope: {
displayText: "@"
},
template: "<td>{{ displayText }}</td>", // should I have this?
link: function(scope, element, attrs){
// What do I put here? I don't seem to have any
// element to initialize (set up event handlers, for example)
},
compile: function(?,?,?){} // should I have this? If so, what goes inside?
}
});
コントローラ
function PositionsController($scope) {
$scope.positions = [{ Name: "Quarterback", Code: "QB" },
{ Name: "Wide Receiver", Code: "WR" }
];
}
HTML:
<div ng-app="MyApp">
<div ng-controller="PositionsController">
<table>
<tr ng-repeat="position in positions">
<admin-roster-item displayText="{{ position.Name + ' (' + position.Code + ')' }}"></admin-roster-item>
</tr>
</table>
</div>
</div>
これは非常に単純な例ですが、レンダリングできません。おそらく、チュートリアルでは教えてくれないことがあるでしょうか、それとも Angular の秘密の知識でしょうか?
<tr ng-repeat="..." />
代わりにand内のディレクティブを削除すると<td>{{ displayText }}</td>
、すべてのレコードが表示されます。
<td>{{}}</td>
しかし、複数のアプリでこのディレクティブを再利用できるように、ディレクティブを (最終的には)単一のものよりも複雑にしたいと考えています。
では、ng-repeat 内に入るディレクティブを適切に作成するにはどうすればよいのでしょうか。私は何が欠けていますか?上記のコードから何を削除する必要がありますか?