如何使用angularjs中的visjs创建网络图或分层树?

时间:2015-06-23 11:08:16

标签: angularjs angularjs-directive plunker vis.js

我需要一些帮助,使用angularjs中的visjs创建网络图。我正致力于this plunker以实现类似this

的目标

我按照AngularJS - visjs中提到的步骤进行操作,但无法使其正常工作,因此我创建了一个plunker(如上所述)以获得社区的帮助。

控制器代码。

var app = angular.module('app', ['ngVis']);

app.controller('MainCtrl', ['$scope', 'VisDataSet',

  function($scope, VisDataSet) {
      $scope.data = VisDataSet({
          "1": {
              "id": 1,
              "content": "<i class=\"fi-flag\"></i> item 1",
              "start": "2014-09-01T17:59:13.706Z",
              "className": "magenta",
              "type": "box"
          },
          "2": {
              "id": 2,
              "content": "<a href=\"http://visjs.org\" target=\"_blank\">visjs.org</a>",
              "start": "2014-09-02T17:59:13.706Z",
              "type": "box"
          },
          "3": {
              "id": 3,
              "content": "item 3",
              "start": "2014-08-29T17:59:13.706Z",
              "type": "box"
          },
          "4": {
              "id": 4,
              "content": "item 4",
              "start": "2014-09-01T17:59:13.706Z",
              "end": "2014-09-03T17:59:13.706Z",
              "type": "range"
          },
          "5": {
              "id": 5,
              "content": "item 5",
              "start": "2014-08-30T17:59:13.706Z",
              "type": "point"
          },
          "6": {
              "id": 6,
              "content": "item 6",
              "start": "2014-09-04T17:59:13.706Z",
              "type": "point"
          },
          "7": {
              "id": 7,
              "content": "<i class=\"fi-anchor\"></i> item 7",
              "start": "2014-08-28T17:59:13.706Z",
              "end": "2014-08-29T17:59:13.706Z",
              "type": "range",
              "className": "orange"
          }
      });
      $scope.options = {
          "align": "center",
          "autoResize": true,
          "editable": true,
          "selectable": true,
          "orientation": "bottom",
          "showCurrentTime": true,
          "showCustomTime": true,
          "showMajorLabels": true,
          "showMinorLabels": true
      };
  }
]);

请帮我弄清楚plunker

中的问题

1 个答案:

答案 0 :(得分:1)

我看到了一些问题。首先,您将css文件包含为脚本而不是样式表。所以使用这个:

<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.3.0/vis.css">
<link rel="stylesheet" type="text/css" href="style.css">

其次,如果你看一下angular-vis.js,你会发现该指令实际上应该是时间轴。所以我只是在html中将其改为:

<vis-timeline data="data" options="options"></vis-timeline>

我删除了events属性,因为没有在您的作用域上定义,但我假设您可以查看visjs文档,看看应该去哪里。

请参阅修订后的plunker了解整个修复程序。