2017-07-03 1 views
1

Ich versuche, Chartkick zu einer Anwendung hinzufügen, die Mithril verwendet.Konvertieren von JS in Mithril (mit Chartkick)

Wie würde ich den folgenden Code konvertieren, um mit Mithril verwendet zu werden?

<h1>Line Chart</h1> 
<div id="line" style="height: 300px;"></div> 
<script> 
    new Chartkick.LineChart("chart-1", "/stocks") 
</script> 

Die Mithril Seite:

import m from 'mithril'; 
import _ from 'underscore'; 
import h from '../h'; 
import projectShareBox from './project-share-box'; 
import facebookButton from './facebook-button'; 
import addressTag from './address-tag'; 
import categoryTag from './category-tag'; 

const projectHighlight = { 
    controller() { 
     return { 
      displayShareBox: h.toggleProp(false, true) 
     }; 
    }, 
    view(ctrl, args) { 
     const project = args.project; 

     return m('#project-highlight', [ 
      m('.w-row.u-marginbottom-60', [ 
       m('.w-col.w-col-12.u-text-center', { 
        style: { 
         'min-height': '300px' 
        } 
       } 
      ]), 

Antwort

1

Sie werden die oncreate vnode lifecycle hook verwenden möchten.

Hier ist ein Beispiel:

m.mount(document.body, { 
    view() { 
     return m(".chart", { 
      oncreate(vnode) { 
       vnode.state.chart = new Chartkick.LineChart(
        vnode.dom, 
        { 
         one : 1, 
         two : 2, 
         three : 3 
        } 
       ); 
      } 
     }); 
    } 
}); 

Arbeitsbeispiel dieser Code: https://jsbin.com/gogucuv/2/edit?html,js,output

+0

Dank Tivac! Der Link scheint aufgrund eines "502 Bad Gateway" -Fehlers nicht zu funktionieren, daher werde ich versuchen, ihn später zu sehen. –

+0

versucht, indem Sie sowohl die Skripts in der Anwendungsvorlage und die Minthrill, aber die .chart div ist leer. Hast du irgendwelche Vorschläge, warum dies passieren könnte? –

+1

Fragen Sie im Mithril-Zimmer und jemand sollte helfen können! – Tivac

Verwandte Themen