Angularの指令には本当に新しく、以前は何らかの形式のng-includeで実現していました。Angular ng-repeat指令はコントローラからのデータにアクセスします
ディレクティブの範囲とその可能性について非常に混乱しています。また、ng-repeatの中でディレクティブが使用されると、変数の動作が異なります。
私が探していることを理解するには、画像全体が必要です。私はこれらの電子メールをデータベースに保存しています。それぞれの電子メールには典型的なプロパティがあり、ng-repeatを使用してそれぞれを表示するディレクティブを作成しました。
HTML でapp.directive('emailListing', function ($filter) {
return {
restrict: 'AE',
replace: 'true',
templateUrl: '../Pages/Views/Templates/emailListing.html',
scope: {
Date: "@",
Email: "@",
Content: "@",
Read: "@",
Subject: "@"
},
link: function (scope, elem, attrs) {
scope.Date = attrs.date;
scope.Email = attrs.email;
scope.Content = attrs.content;
scope.Subject = attrs.subject;
if (attrs.isnew == 'true') {
scope.Read = "logo-unread";
} else {
scope.Read = "logo-read";
}
scope.Date = $filter('date')(scope.Date, 'MM-dd-yyyy');
}
};
});
ディレクティブ
<email-Listing ng-repeat="items in AllEmails | filter:{message: contentEmail} | limitTo:10" email="[email protected]"></email-Listing>
HTMLテンプレート
<div class="news-row row">
<label>{{email}}</label>
</div>
私は今、私は角のUI bootstrap.modalディレクティブを使用したい問題に直面しています。私はテンプレート内の何かをクリックできるようにしたい、そして、それはこのスコープからのデータでモーダルを持ち出すでしょう。
まず、値を渡す必要があります。たとえば、email = "[email protected]"はコントローラにあるオブジェクトにデータバインドされます。私はこれを達成する方法を理解していない、リンク機能を削除し、 "=電子メール"を持っている範囲を変更することは何も働かないので。
誰かが、日付、電子メール、コンテンツ、isRead、および件名などの値を受け入れる指示を書くのに役立つことができます。これらの値はng-repeatによって提供され、最後にこの指令の値はコントローラーにバインドされていなければなりません。
参照[角度指令(非推奨)で= true'をを交換 '説明](http://stackoverflow.com/questions/22497706/explain-replace-true-in-angular-directives-deprecated/35519198#35519198)。 – georgeawg