我使用Cytoscapejs创建了一个网络图。我试图取消隐藏div,并在用户点击图形边缘后加载更多内容。
我的控制器中有以下内容:
CytoscapeService.getGraph().on('tap', 'edge[id = "123"]', function (event) {
console.log("Hi")
//Above console printout works.
//The below does not work on index.html
$scope.testMessage = "Hello World";
$scope.showMe = function () {
$scope.show = true;
}
$scope.showMe();
});
// This works though.
//$scope.testMessage = "Hi from outside";
在Index.html中:
<div ng-controller="MainCtrl" class="container" ng-show="show">
</div>
<div ng-controller="MainCtrl">
{{testMessage}}
</div>
console.log确实打印出来但是没有调用带有函数的$ scope.showMe。但是,如果我将范围移到此子句之外,进入Controller的主要子句,它就可以工作。
我有什么办法可以实现这个目标吗?
答案 0 :(得分:2)
当您使用jquery事件更新$ scope值时,这在angular中很常见。您将不得不手动触发$ scope适用:
$scope.$apply(function(){
$scope.show = true;
});
另一种解决方案是使用Angular&#39; $timeout
$timeout(function () {
$scope.show = true;
});