I次のディレクティブを持っている:カスタムディレクティブのリンク機能が呼び出され
.directive("picSwitcher", ["$timeout", function($timeout){
return {
restrict: "A",
scope: {
pics: "=",
fadeTime: "@",
timeForPic:"@"
},
template: '<img ng-repeat="pic in pics" src="{{pic.url}}" style="display: none"/>',
link: function ($scope, element){
//some code...
$(element.find("img")[0]).css({display: "block"});
}
};
}])
私の問題は、私のリンク機能が呼び出されたときである - ngのリピートが(「コンパイル」するためにはまだ何語でここではコンパイルの代わりに使用するべきですか?)
私は定義されていないCSSを設定しようとしています。 ng-repeatが終了した後にリンク機能を強制的に実行するにはどうすればいいですか?今、私はそれが感じ$timeout(function(){ $(element.find("img")[0]).css({display: "block"});}, 200);
で$(element.find("img")[0]).css({display: "block"});
を置き換えることによって、これを解決していますため
「ハック」
は、私は簡単な方法で自分の目標を達成するために行方不明です何かがあるのでしょうか? 一般に、カスタムディレクティブのリンク関数内でng-repeat dom要素を操作する最善の方法は何ですか?
ありがとう、 ジミー。
は、HTML内のテンプレートを行いますとdirecticeにそれが動作するではありませんか? – Erez