2016-03-26 10 views
1

Herkes Angular ile visjs kullanıyor mu? Ben kullanıyorum ama kapsam değişkenlerine nasıl erişileceğini ve değiştirileceğini anlamaya çalışıyorum. Özellikle, bir işleyicide (tıklama gibi) visjilerinde, kapsam değişkenlerini hiç değiştiremiyorum. Eğlenceli, rootScope'u bile denedim ve bu da işe yaramıyor mu? Hiç böyle bir şey yapmadım.

graph2d.on('click',function (prop) { 
    alert ("You clicked"); 
    $scope.myname = "terminator"; 
    $rootScope.rootmyname="footer"; 
    }); 
: -

Burada codepen bir örnek kurdum İçinde gördüğünüz gibi ben de $scope veya $rootScope

http://codepen.io/pliablepixels/pen/WwOpmd

tıklama işleyici

Kod şablonları değiştirmek mümkün değilim üzerine tıklayın

cevap

1

Bunun iyi olduğunu düşündünüz ancak bunun yerine $timeout hizmetini kullanmayı düşünün. Özet döngüsü zaten devam ederken $scope.$apply başarısız olabilir.

Yani $timeout enjekte ve bunun gibi yapın: Bu hala $scope.$apply gibi ama güvenli bir şekilde aynı şeyi yapacağız

$timeout(function() { 
    $scope.myname = "terminator"; 
    $rootScope.rootmyname="footer"; 
}); 

.

+1

iyi bir nokta, kabul edildi – user1361529

1

Ah, problem çözüldü. $scope.$apply'da sarmak zorunda kaldım. Codepen'i güncelledim.