まず、次の質問がばかげているように聞こえる場合は、本当に申し訳ありません。ドキュメントがあることは知っていますが、十分な例がなく、まったく新しいものです。
を利用する可能性のあるディレクティブを作成しようとしましたがng-repeat
、ディレクティブがリンクされている場合、ng-repeat
まったく評価されていないようです。そのため、関数内で jQuery 関数を呼び出そうとすると、jQuery は機能しpostlink
ませんでした。
<div my-directive>
<div ng-repeat="image in images">
<img ng-src="image">
</div>
</div>
スコープには次のようなものが含まれます。
scope.images = ['http://placehold.it/100x100', 'http://placehold.it/100x100'];
ディレクティブでは、おおよそ次のようにしました。
angular.module('mymodule', []).directive('myDirective', function factory() {
return {
restrict: 'A',
compile: function (tElement, tAttrs, transclude) {
// #1
return {
pre: function preLink(scope, iElement, iAttrs, transclude) {
// #2
},
post: function postLink (scope, iElement, iAttrs, controller) {
// #3
}
};
},
link: function postLink(scope, iElement, iAttrs) {
// jQuery code to convert the element
// #4
}
};
});
また、コードを上記の #1、#2、#3、#4 に置くことの違いは何ですか? ここでの経験則は何ですか?
おそらくjQueryUIのようなコードをどこに置くの$( "#datepicker" ).datepicker();
ですか? 私が理解していることから、関数は要素とその子を操作 (変換) します。
ありがとう。