2013-04-30 5 views
10

Böyle bir denetleyicisi var: (DOM yükleri) statik DOM bağlayıcı zaman kullanarak upload_variant_image işlevi çağırmak çalıştığınızda ng tıklamang-click, dinamik DOM AngularJS üzerinde çalışmıyor mu?

@VariantModalCtrl = ($scope) -> 
    $scope.upload_variant_image = -> 
    alert("test") 

, sadece çalışır, böyle bir bağlantı var : DOM yüklendikten sonra bu öğe dinamik olarak eklendiğinden, ng-click çalışmazsa, bu öğe dinamik olarak eklenir.

Güncelleme Sadece işlevi derlemek $ kullanarak cevap parçası bulundu: AngularJS + JQuery : How to get dynamic content working in angularjs

AMA Rails böyle DOM güncellediğimde çalışmıyor:

$(".modal-body").html($compile("<%= j render("/variants/form", :variant => @variant) %>")(scope)); 
+0

Eğer fiddle demo veya plunker demosunu paylaşır mısınız –

cevap

15

isterim Angular-external anlamına gelirken DOM'ı manipüle ediyorsanız, tam olarak kucaklanmayacağınız konusunda uyarıda bulunabilirsiniz. AngularJS ile dinamik olarak bağlantı eklemek, diğer her şey kadar basittir ve dış kütüphanenizin güzel çalmasını sağlamaktan çok daha kolay ve daha idiomatik olacaktır. İşte basit bir örnek sorunuza dayalı şudur: "Sadece çalışmak"

<ul> 
    <li ng-repeat="item in items"> 
    <a ng-click="upload_variant_image()">{{item.name}}</a> 
    </li> 
</ul> 

yapmanız gereken tek şey tel yukarı uygun kapsam veridir ve bu her zaman olacaktır

Bu durum, eğer DOM'u manipüle ediyorsanız, $compile service'u kullanarak AngularJS bağlarının oluşmasını (arzu ettiğiniz şekilde ng tıklama) sağlayabilirsiniz. Yine de, yukarıdaki daha iyi seçeneği düşünün. :)