Fark ettiğim kadarıyla, ilk gelenin ilk adımı olan şeyleri derler. Etraftaki bazı öğeleri saran bir direktif yaptım ve içeriğindeki şeyleri arayan bir link özelliğine sahip olmak istiyorum. Somut bir kullanım örneği içinAngularJS yönergeleri hangi sırayla derlenmiş
: Ben ilk girişi için içerik içinde arar ve ekler bir giriş etiketi direktifi yapıyorum rastgele input
için id
ve burada label
bir for
niteliği üretilen kod :
// Find the first element with the attribute ng-label-target or the first input and links a label to it
app.directive('ngLabel', function() {
return {
restrict: 'E',
replace: true,
transclude: true,
scope: {
label: '@',
},
template: '<span class="ng-label">' +
'<label class="ng-label-text">{{label}}</label>' +
'<span class="ng-label-content" ng-transclude></span>' +
'</span>',
link: function (scope, element, attrs) {
scope.id = scope.id || 'random-id-' + Math.floor(Math.random() * 90000000);
angular.element(element[0].querySelector('.ng-label-text')).
attr({for:scope.id});
var target = angular.element(element[0].querySelector('[ng-label-target]'));
if (!target || target.length == 0) {
target = angular.element(element[0].querySelectorAll('input,select,textarea')[0]);
}
target.attr({id:scope.id});
},
};
});
Örnek Kullanım:
<ng-label label="Text:">
<input type="text" ng-model="page.textColor" size="5" maxlength="7" placeholder="e.g. #000" required />
<input ng-label-target type="color" ng-model="page.textColor" required />
</ng-label>
Bu kendi başına bir çekicilik gibi çalışır.
Ancak şimdi birkaç girişi otomatik olarak oluşturmak ve etiket işaretini ilkine sahip olmak istiyorum. Sorun şu ki, ng-label
içinde bir ng-repeat
yaptığımda, yönerge işlendikten sonra ng-repeat
kodu oluşturulur, böylece aslında hiçbir şey bulunmaz.
Bu nedenle sorum şu: diğer yönlerin yerine iç içe doğru yönergeleri değerlendirmek için açısal olarak belirtebileceğiniz bir yol var mı?
Veya bunu yapmakta olduğumdan daha yapıcı bir yol var mı?
Ürünlerin değerlendirildiği sırayı örneklemek için bir keman yaptım. Ben büyük ölçüde basitleştirmek düşünüyorum
emin olmak gerektiğinden çok daha karmaşık görünüyor ... demo sağlanan çok fazla özyineleme, yönergenizi ve işaretlemenizi kullanarak demo sağlayın. Fünerin daha basit olmasıyla birlikte açısal gösterimler oluşturmayı daha kolay bulabilirsiniz – charlietfl
'id' niçin rastgele olmalı? "Id =" name _ {{$ index}} "' ve etiket için aynı şeyi kullanamaz mısınız? –
Genelde ona ihtiyaç duymadığım için ID'yi belirtmek istemiyorum, bu yüzden belirtilmemişse rastgele rastlanır – Stefan