için aynıdır yönerge şu var:Argümanlar açısal direktifi
app.directive('filterComponent', function() {
return {
restrict: 'E',
templateUrl: 'filter-component.html',
link: function(scope, element, attrs) {
console.log(attrs);
scope.type = attrs["type"];
}
};
});
ve benim html farklı yerlerde üç kez diyoruz:
<filter-component type="TYPE1"></filter-component>
<filter-component type="TYPE2"></filter-component>
<filter-component type="TYPE3"></filter-component>
ve bu yönerge html geçerli:
<div id="{{type}}" class="filter-container">
<div layout="row" class="rhs-text" ng-show="!noTargetSelectedYet">
<md-input-container flex="">
<label>Search</label>
<input style="position: relative; top: 7.8px;" ng-model="filterText">
</md-input-container>
</div>
</div>
Sorun şu ki, id
({{type}}
) aynıdır. (sonuncusu, TYPE3
) tür için farklı değerler göndermeme rağmen (console.log(attrs)
da görülür).
Bunun nesi yanlış?
Ancak denetleyicimdeki diğer değişkenleri kullanmak için kapsama ihtiyacım var. mümkün mü? – Asqan
de, dış kapsam değişkeninin değerini değiştirmek isterseniz, sonuncuya ayarlanacaktır. ve ayrıca buna gerek yok. "scope.type = attrs [" type "];'; ve denetleyici kapsamındaki değerlere mi ihtiyacınız var, yoksa bunları değiştirmeye mi ihtiyacınız var? Değerlere ihtiyacınız varsa, bunları sadece direktiflere aktarmayın? – war1oc
örneğin 'filterText' dir direktifin html'sinde kullanıyorum. Çözümü ile denedim ve 'filterText' ulaşılamadı. Nesneler dizgiden geçirilir ve orijinal kapsam değişkenine yönlendirilmez. – Asqan