2016-03-26 11 views
1

visjsに角を使用している人はいますか?私はそれを使用していますが、私はスコープ変数にアクセスして変更する方法を理解するのに苦労しています。具体的には、visjのハンドラ(クリックなど)の内部では、スコープ変数をまったく変更していないようです。面白くて、私はrootScopeを試してみましたが、どちらもうまくいきませんでしたか?私はそれが起こったことはありませんでした。

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

私はここにcodepenサンプル設定したあなたは内部の見るように、私はどちらか$scopeまたは$rootScope

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

クリックハンドラの

コードフラグメントを変更することはできませんよ上でクリックします

答えて

1

代わりに$timeoutサービスを使用することをお勧めします。ダイジェストサイクルがすでに進行中の場合は、$scope.$applyが失敗することがあります。

ので$timeoutを注入して、次のように実行します。これはまだ$scope.$applyがそうであるようにが、安全な方法で同じことを行います

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

+1

良い点、同意しました – user1361529

1

ああ、問題は解決しました。私はそれを$scope.$applyで包んでいた。私はcodepenを更新しました。

関連する問題