Cytoscape.js:样式不适用

时间:2015-09-16 13:11:20

标签: javascript ember.js cytoscape.js

我在Ember app中使用Cytoscape.js。我已经为图创建了一个组件。我尝试在组件的didInsertElement函数中设置图样式表,如下所示:

        this.get("cy").style()
            .selector('node')
              .css({
                'width': '100px',
                'height': '100px',
                'border-color': 'gray',
                'border-width': 3,
                'border-opacity': 0.5
              })
            // unimportant code here
            .selector('.faded')
              .css({
                'opacity': 0.0,
                'text-opacity': 0
            }).update();

当我在Ember中使用此组件访问路径时,不应用样式(但布局和其他东西正常工作)。当我转移到另一条路线而不是后面时,风格神奇地出现。

我做错了什么?如何在“首次加载”中应用该风格?

编辑:可以找到完整代码here 把手代码很简单:

<div class="container content-section" id="graph-content">
<div class="centre" style="margin: 10px">
    <!-- cytoscape graph -->
    <div id="cy"></div>
</div>

1 个答案:

答案 0 :(得分:0)

问题解决了 - 这是我的错误。节点的样式基于 JSONObject jsonObject = new JSONObject(); try { jsonObject.put("userName", "name"); JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(url, jsonObject, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { // do something... } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // do something... } }); MySingleton.getInstance(this).addToRequestQueue(jsonObjectRequest); } catch (JSONException e) { e.printStackTrace(); } ,它属于ToTo节点并且是异步加载的。当我将节点插入图形时,节点promise已经是fullfiled,但是嵌套关系尚未完全填充,因此节点样式为category