簡體   English   中英

如何在(Angular)JS中格式化D3樹狀圖的JS對象

[英]How do I Format a JS Object for a D3 Dendrogram Chart in (Angular)JS

我正在嘗試使用D3樹狀圖來擴展ElasticUI項目。

Apolagia:我知道ElasticUI已被貶值是因為它不再被維護,但是它帶給我很長的路要走,讓我用我自己的方式來嘗試彈性數據,因為Java和AngularJS的初學者絕對不可能夢見自己跳了起來並僅使用elasticsearch.js並嘗試為其編寫“服務”。 第二件事:我說我有一個對象,但是據我所知,它可能是JSON數據,數組或格式化的字符串。 瀏覽器控制台說我的數據包含“對象”。

這是我的html的精簡版,只有樹狀圖。

<body eui-enabled="true" ng-app="moviesearch" ng-controller="IndexController" eui-index="indexName">
<div id="dendrogram" class="d3-chart">
    <eui-singleselect field="tweetMsg" size="10"></eui-singleselect>
    <div class="nav nav-list" eui-aggregation="ejs.TermsAggregation('entries').field('tweetMsg').size(20)" eui-filter="ejs.TermsFilter('tweetMsg', bucket.key)" eui-enabled="filter.enabled" eui-filter-self="true">

            <eui-var eui-key="dendroSelectorChartConfig" eui-value='                
            {
                "name": "Top Level",
                "children": (treeMap(aggResult.buckets))                    
            }
            '/>

            <div class="container well">
                <div d3-hierarchy="dendroSelectorChartConfig" depth="3"></div>
            </div>
    </div>
</div>  

這是我控制器中的功能。 它可能不應該在我的控制器中嗎? 我無法使其以任何其他方式工作。

$scope.treeMap = function mainTreeMapDiagramData(data) {
var i;
for(i = 0; i < data.length; i++) {
     console.log("{\"name\":" + "\"" + data[i].key + "\"},");
     //     return "{\"name\":" + "\"" + data[i].key + "\"},";
     }
};

您可能會笑,但這實際上將生成的聚合條款正確記錄到瀏覽器控制台中:

app.js:87 {"name":"https"},{"name":"t.co"},{"name":"movie"},{"name":"rt"}, {"name":"the"},{"name":"film"},{"name":"a"},{"name":"to"},{"name":"in"},{"name":"of"},{"name":"and"}, 

等等...

但是,如果我注釋掉console.log()並取消注釋“ return”,則D3不顯示任何內容。 如果我將上述列表直接復制到我的HTML中,它將起作用。

我什至還沒有開始考慮下一個級別,就像在孩子們的孩子中一樣,我很樂意只為上一個級別工作。

感謝您的閱讀!

編輯:如果有幫助,則該項目位於此處在線: https : //analytics.molch.at/dendrogram.html

這工作:

$scope.treeMap = function mainTreeMapDiagramData(data) {

 var i;
 arr = [];
 for (var key in data){
     if (typeof data[key] !== 'function') {
          arr.push({ name: data[key].key });
     }
 }

 return arr;

 };

然而。 單級樹狀圖實際上並不是很多樹狀圖。 現在,我必須弄清楚如何在以前的termAggregation中為每個存儲桶添加一個termAggregation。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM