2017-05-22 199 views
1

我在我的laravel刀片視圖中安裝了javascript。林想知道我是否可以將這兩個腳本合併爲一個。 每個引導選項卡中的腳本顯示圖形。將兩個javascript合併爲一個foreach

腳本首先:

var chart1 = AmCharts.makeChart("chart_visits", { 
     "dataProvider": [ 
      @foreach($results as $result) 
       { 
        "date": "{{ date('Y-m-d', strtotime($result->time)) }}", 
        "value": '{{ $result->stats->visits }}' 
       }, 
      @endforeach 
     ] 
    }); 

腳本第二:

這是我的看法:

<ul class="nav nav-tabs"> 
    <li> 
     <a href="#bounce" data-toggle="tab"> Bounce rate </a> 
    </li> 
    <li class="active"> 
     <a href="#visits" data-toggle="tab"> Visits </a> 
    </li> 
</ul> 

<div class="tab-content"> 
    <div class="tab-pane active" id="visits"> 
     <div class="chartdiv" id="chart_visits"></div> 
    </div> 

    <div class="tab-pane" id="bounce"> 
     <div class="chartdiv" id="chart_bounce"></div> 
    </div> 
</div> 
+0

只有可以做一些 「接口」 爲兩個陣列,例如::'$ result-> stats-> visits'和'$ result-> stats-> bounceRate'有什麼東西在這兩個腳本重複值像'$ result-> value'那麼你只需要一個包含圖表生成 –

+0

@ka_lin我可以粘貼我的例子嗎? – kuchar

回答

0

正確答案是jQuery函數extend

腳本,對於這兩種是相同的,我不想幹:

var config = { 
      "type": "serial", 
      "theme": "light", 
      "marginRight": 40, 
      "marginTop": 60, 
      "marginLeft": 40, 
      "autoMarginOffset": 0, 
      "dataDateFormat": "YYYY-MM-DD", 
     }; 

第一個劇本,將在兩個延長重複值腳本:

AmCharts.makeChart("chart_leads", jQuery.extend({}, config, { 
      "dataProvider": [ 
        @foreach($results as $result) 
       { 
        "date": "{{ date('Y-m-d', strtotime($result->time)) }}", 
        "value": '{{ $result->stats->leads }}' 
       }, 
       @endforeach 
      ] 
     })); 

第二個腳本,將擴展

AmCharts.makeChart("chart_visits", jQuery.extend({}, config, { 
      "dataProvider": [ 
        @foreach($results as $result) 
       { 
        "date": "{{ date('Y-m-d', strtotime($result->time)) }}", 
        "value": '{{ $result->stats->visits }}' 
       }, 
       @endforeach 
      ] 
     })); 
0

如果我理解正確,你做你想要的是簡單地創建對象的集合平原陣列和迭代是最簡單的方法。喜歡的東西:

var chart1 = AmCharts.makeChart("chart_visits", { 
    "dataProvider": [ 
     @foreach($results as $result) 
     { 
      "date": "{{ date('Y-m-d', strtotime($result['date'])) }}", 
      "value": "{{ $result['value'] }}" 
     }, 
     @endforeach 
    ] 
});