Axios没有将数据加载到vue

时间:2017-09-01 21:09:32

标签: vue.js axios cytoscape.js cytoscape

我正在尝试使用vue和axios加载cytoscape图。无论如何不能配置cytoscape所以我首先尝试使用axios和vue。范围仍有问题,但我不知道在哪里?我应该改变什么?如何正确设置vue和axios。

修改

所以在设置this.nodes之后我想在cytoscape.js中绘制一个grapg,但我总是得到错误:

- 样式属性text-outline-color:无效

- 不为没有相应数据的元素分配映射(例如,对于具有数据字段6b899f09-359e-424d-9461-d71c8c3fcd3b的属性text-outline-color的ele faveColor;尝试使用[faveColor]选择器将范围限制为faveColor已定义

的元素

-Uncaught TypeError:无法设置属性'映射'为null

我认为这是阵列问题,但我无法弄清楚如何正确设置阵列,这样才能正常工作。

这是代码:

draw: function(){

    this.cy = cytoscape({
            container: document.getElementById('cy'),
              layout: {
                name: this.main_layout,
                padding: 10
              },
              style: cytoscape.stylesheet()
                .selector('node')
                  .css({
                    'shape': 'data(faveShape)',
                    'width': 'mapData(weight, 40, 80, 20, 60)',
                    'content': 'data(name)',
                    'text-valign': 'center',
                    'text-outline-width': 2,
                    'text-outline-color': 'data(faveColor)',
                    'background-color': 'data(faveColor)',
                    'color': '#fff'
                  })
                .selector(':selected')
                  .css({
                    'border-width': 3,
                    'border-color': '#333'
                  })
                .selector('edge')
                  .css({
                    'curve-style': 'bezier',
                    'opacity': 0.666,
                    'width': 'mapData(strength, 70, 100, 2, 6)',
                    'target-arrow-shape': 'triangle',
                    'source-arrow-shape': 'circle',
                    'line-color': 'data(faveColor)',
                    'source-arrow-color': 'data(faveColor)',
                    'target-arrow-color': 'data(faveColor)'
                  })
                .selector('edge.questionable')
                  .css({
                    'line-style': 'dotted',
                    'target-arrow-shape': 'diamond'
                  })
                .selector('.faded')
                  .css({
                    'opacity': 0.25,
                    'text-opacity': 0
                  }),
              elements: {
                nodes: this.nodes

              },

              ready: function(){
                window.cy = this;
              }
          });

1 个答案:

答案 0 :(得分:0)

我认为response.data是一个数组或对象ans vm.projekt null没有注册vue-getter。所以请尝试做

Vue.set(vm, 'projekt', response.data)每个vue实例中都有一个$ set(this)

而不是

vm.projekt = response.data

一般情况下,我会建议你将ajax-datas推送到反应式数组中,效果非常好。