Angular(v1.3)では、変数をng-repeatからカスタムディレクティブにバインドする方法はありますか?ng-repeat変数をカスタム角度指示にバインドする方法は?
すべての例は、代わりに$ scope変数にバインドされているようです。
<li ng-repeat="product in products">
<product item="product" />
</li>
ディレクティブは次のように作成されます:例えば、我々はこの効果に何かを行うことができますどのように製品のリストおよび製品というカスタムディレクティブ、与えられた
(function() {
'use strict';
var productDirective = function() {
return {
restrict: 'E',
scope: {item: '='},
templateUrl: '/views/product.html',
};
};
angular
.module('myApp')
.directive('product', productDirective);
})();
をそして、それは非常に単純なテンプレートを持っています:
<p>{{item.name}} {{item.price}}</p>
スコープ: '='は$ scopeにのみバインドされ、ng-repeatにはバインドされないため、これは失敗します。
私はそれが
return {
restrict: 'E',
scope: {item: '@'},
templateUrl: '/views/product.html',
link: function(scope, element, attributes){
scope.item = scope.$eval(attributes.item);
}
};
で動作するように取得することができた。しかし$のevalの使用はもちろん、(悪いスタイル)の本当に受け入れられません。
これを達成するための正しい方法は何ですか? productDirectiveにコントローラを追加する
これは何をしますか?違いはありません。テンプレートはバインドされておらず、まだ空白になっています。 –
私はplnkrを作成してデモンストレーションしました:https://plnkr.co/edit/t2CVoeUCz8WEy1UhR9J5?p=preview –