Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用angularjs在visjs中添加放大缩小按钮?_Javascript_Angularjs_Angularjs Directive_Vis.js_Vis.js Network - Fatal编程技术网

Javascript 如何使用angularjs在visjs中添加放大缩小按钮?

Javascript 如何使用angularjs在visjs中添加放大缩小按钮?,javascript,angularjs,angularjs-directive,vis.js,vis.js-network,Javascript,Angularjs,Angularjs Directive,Vis.js,Vis.js Network,需要帮助在使用angularjs时使用放大和缩小按钮,我找不到任何相关选项。请帮忙,我也提供了一个例子 代码 $scope.options={ 自动调整大小:正确, 高度:'800', 宽度:“100%” }; 我从未与plunker合作过,因此我无法将我的解决方案集成到您的示例中,但我已经为它创建了一个基于visjs.org网站上一个简单网络示例的解决方案 不幸的是,目前没有可用的setScale(scale)方法,但是您可以扩展网络,直到有人实现它 var network; var zoo

需要帮助在使用angularjs时使用放大和缩小按钮,我找不到任何相关选项。请帮忙,我也提供了一个例子

代码


$scope.options={
自动调整大小:正确,
高度:'800',
宽度:“100%”
};

我从未与plunker合作过,因此我无法将我的解决方案集成到您的示例中,但我已经为它创建了一个基于visjs.org网站上一个简单网络示例的解决方案

不幸的是,目前没有可用的
setScale(scale)
方法,但是您可以扩展
网络
,直到有人实现它

var network;
var zoomstep = 0.3;

function zoomin() {
    network.setScale(network.getScale() - zoomstep);
}

function zoomout() {
    network.setScale(network.getScale() + zoomstep);
}

vis.Network.prototype.setScale = function (scale) {
    var options = {
        nodes: []
    };
    var range = this.view._getRange(options.nodes);
    var center = this.view._findCenter(range);
    var animationOptions = {
        position: center,
        scale: scale,
        animation: options.animation
    };
    this.view.moveTo(animationOptions);
};
vis.Network.setScale
代码取自Network.js和View.js源代码,基于
getScale()
所做的工作。我不得不重做一些方法
View.fit
View.\u getRange
View.\u findCenter
做了,但到目前为止效果很好。

看看这个选项。它具有用于缩放、平移和重置视图的内置控件

您需要更改vis选项以包括
navigationButtons:true
keyboard:true
以启用keboard快捷键

$scope.options = {
  autoResize: true,
  height: '600',
  width: '100%',
  interaction: {
      navigationButtons: true,
      keyboard: true
  }
};

检查此

针对vis.js 4.21.0的更新解决方案

vis.Network.prototype.zoom = function (scale) {
    const animationOptions = {
        scale: this.getScale() + scale,
        animation: { duration: 300 }
    };
    this.view.moveTo(animationOptions);
};
单击处理程序代码:

this.network.zoom(-0.5) // or 0.5 to zoom in

谢谢,看起来很好,但是我需要Angularjs方面的帮助。你能给我提供使用Angularjs的解决方案吗?对不起,我从来没有使用过Angularjs。不能给你一个很好的解决方案。但是,现在您知道如何将我的代码放入angularjs应用程序中应该不会太困难了吧?谢谢您的解决方案。我是angularjs的新手,所以我想在angularjs中找到一个解决方案。你可以用滚轮进行放大和缩小——为什么你需要单独的按钮来实现这一点?@efeder:所有用户可能都没有带滚动条的鼠标,也有一些可能使用笔记本电脑,用户可能更喜欢使用一些控件来控制这个图形。看看这个,我提供了一个类似于示例的解决方案
this.network.zoom(-0.5) // or 0.5 to zoom in