2016-03-26 52 views
1

是否有人使用visjs與Angular?我正在使用它,但我正在努力想出如何訪問和修改範圍變量。具體來說,在visjs的處理程序(如點擊)中,我似乎根本無法更改範圍變量。有趣的是,我甚至試過rootScope,那也不管用?我從來沒有發生過這種事。

我已經在這裏設置codepen樣本 - 當你看到裏面的點擊,我不能改變任何$scope$rootScope

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

單擊處理的

的代碼片段:

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

回答

1

這很好,你想通了,但考慮使用$timeout服務。當摘要循環已經在進行時,$scope.$apply可能會失敗。

所以注入$timeout和這樣做:

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

這仍然會做同樣的事情,$scope.$apply做,但在安全的方式。

+1

好點,同意 – user1361529

1

嗯,問題解決了。我不得不把它包裝在$scope.$apply。我更新了codepen。

相關問題