Có thể quản lý bằng D3 bằng Elm bằng cổng không? Tôi đang thử Elm nhưng tôi không thể tìm thấy bất kỳ ví dụ về việc sử dụng Elm với D3 mà không có một API wrapper. Vấn đề tôi gặp phải là wrapper và các nhánh không hoạt động với 0,18. Tôi cũng thấy rất nhiều câu lệnh đề xuất xây dựng một API xung quanh API javascript là thực hành không tốt và thay vào đó bạn nên sử dụng cổng. Tôi không thể tìm thấy bất kỳ ví dụ về điều này với D3, tuy nhiên. Tôi tìm thấy this example nhưng phần D3 đã được thực hiện tất cả trong javascript đơn giản mà không thực sự phù hợp.Sử dụng D3 với Elm
Tôi có thể quá hung hăng với việc sử dụng D3 ngay lập tức với Elm nhưng đó thực sự là những gì tôi muốn làm với nó. Nếu nó không thực sự khả thi để sử dụng D3 với Elm tôi có lẽ sẽ không bận tâm với nó cho bây giờ. Có một vấn đề cơ bản với loại tương tác này hay đơn giản là thiếu sự quan tâm đến D3 trong cộng đồng Elm hoặc tôi chỉ thiếu một cái gì đó?
Ví dụ, lấy mã này tách từ ví dụ bl.ocks trên:
var t = d3.transition().duration(750);
var g = d3.select("svg g")
// JOIN new data with old elements.
var text = g.selectAll("text")
.data(data, function(d) { return d; });
// ENTER new elements present in new data.
text.enter().append("text")
.attr("class", "enter")
.attr("dy", ".35em")
.attr("y", -60)
.attr("x", function(d, i) { return i * 24; })
.style("fill-opacity", 1e-6)
.text(function(d) { return d; })
.transition(t)
.attr("y", 0)
.style("fill-opacity", 1);
Có một bản dịch đơn giản vào Elm cho loại điều?
Dưới đây là một ví dụ về làm việc với cảng và một thư viện JS lớn (Google Maps) http: //simonh1000.github .io/2016/12/elm-ports-google-maps/Nó có thể giúp bạn –
@SimonH Cảm ơn sự hỗ trợ của bạn. Tôi đã xem xét một số điều như thế này, nhưng nơi tôi đấu tranh là d3 sử dụng rất nhiều tham chiếu phương pháp. Bạn cần truyền các hàm và các hàm gọi trên hàm trả về các hàm (cũng là các đối tượng). Tôi là không biết làm thế nào để làm điều này trong Elm vì vậy đó là nơi tôi đã hy vọng tìm thấy một ví dụ làm việc (đơn giản) để bắt đầu từ. – JimmyJames
Bạn có thể cung cấp một ví dụ mã về những gì bạn phải vượt qua cổng. Mở rộng câu hỏi của bạn để cho thấy chức năng nào bạn muốn truy cập trong D3 từ Elm –