Açısal yönergesi ifadeler yönergesinde belirtilen işlev için bağımsız değişken'In niteliklerini geçebilir?
Bir ile callback
belirli bir özniteliği kullanan Direktifi kapsamında izole bir form var:
scope: { callback: '&' }
Ben pass ifadesini geri çağırma işlevi için bir argüman olarak nesne id
içerir ng-repeat
: Bir içinde oturur
<directive ng-repeat = "item in stuff" callback = "callback(item.id)"/>
Direktif ile işim bittiğinde, kontrolör fonksiyonu $scope.callback()
çağırır. Çoğu durumda, bu iyi, ve yapmak istediğim tek bir şey var, ama bazen directive
içeriden başka bir argüman kendisi eklemek istiyorum.
Bu izin açısal ifadesidir: $scope.callback(arg2)
, callback
arguments = [item.id, arg2]
ile çağrıldığını sonuçlanır?
Bunu yapmak etkileyicisi yolu nedir?
Bu işleri buldum:
<directive
ng-repeat = "item in stuff"
callback = "callback"
callback-arg="item.id"/>
İle
scope { callback: '=', callbackArg: '=' }
ve Yönerge arıyorum
$scope.callback.apply(null, [$scope.callbackArg].concat([arg2, arg3]) );
Ama özellikle temiz ve kapsamı izole içinde ekstra şeyler puting içerir sanmıyorum.
Daha iyi bir yolu var mı?
22* *(Açık konsolu var).
CEVAP
Eğer @lex82 tarafından belirtildiği gibi, geri arama bildirmek gibi
callback = "callback(item.id, arg2)"
Nesne eşleme ile Direktif kapsamında geri arama yöntemi çağırabilir ve bağlama doğru yapardı. Gibi
scope.callback({arg2:"some value"});`
$ayrıştırmak için gerek kalmadan. Benim keman(konsol log) http://jsfiddle.net/k7czc/2/ bkz
Güncelleme: documentation: bu küçük bir örnek var
& veya &ot - bağlamında bir ifade çalıştırmak için bir yol sağlar üst kapsam. Eğer hiç bir sorudur adı öznitelik adı belirtilirse yerel adı ile aynı olduğu varsayılır. Ve kapsam tanımı verilen widget: { : '&' }, izole kapsam özellik localFn işaret eder myAttr localFn count fonksiyonu için bir sarıcı = count değeri ifade. Sık sık arzu bir ifade ile izole kapsam veri aktarmak için. ve üst kapsam için, bu yerel haritası ileterek yapılabilir ifade sarıcı fn içine değişken adları ve değerleri.Örneğin, eğer ifade artım miktarı ise miktarı belirtebilirsiniz bu localFn olarak localFn arayarak değeri({kapasitesi: 22}).
İşlev bağımsız değişken listesi için J...
Java'da değişken bağımsız değişken bir...
JavaScript bir işlev için bağımsız değ...
Nasıl Clojure içinde işlev bağımsız de...
Nasıl PHP bir işlev için bağımsız deği...