Używam Cytoscape.js w aplikacji Ember. Stworzyłem komponent do wykresu. Próbuję ustawić arkusz stylów graficznych w didInsertElement
funkcja tego elementu:
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();
Kiedy uzyskuję dostęp do trasy za pomocą tego komponentu w Ember,styl nie jest stosowany (jednak układ i inne rzeczy działają poprawnie). Kiedy przechodzę na inną trasę i wracam, styl pojawia się magicznie.
Co ja robię źle? Jak zastosować styl przy „pierwszym ładowaniu”?
EDYCJA: Pełny kod można znaleźć tutaj Kod kierownicy jest prosty:
<div class="container content-section" id="graph-content">
<div class="centre" style="margin: 10px">
<!-- cytoscape graph -->
<div id="cy"></div>
</div>
Odpowiedzi:
0 dla odpowiedzi № 1Problem rozwiązany - to był mój błąd. Styl węzła jest oparty na category
, który należy do węzła i jest ładowanyasynchronicznie. Kiedy wstawiam węzły do wykresu, obietnica węzłów jest już pełna, jednak zagnieżdżone relacje nie są jeszcze wypełnione, więc styl węzła jest undefined
.