code-corps / code-corps/code-corps-ember

Discussion: Reconsider the route/template structure for donate and thank-you

Đang mở
#1,122 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Difficulty: Medium
Ngôn ngữ chính
JavaScript
Star
120
Fork
75
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

# Problem

Right now, our route structure is as follows:

```
project.hbs
project/
index.hbs
settings.hbs
tasks.hbs
donate.hbs
thank-you.
```

`project.hbs` is just an `{{outlet}}`. `index`, `settings` and `tasks` share most of the same layout, but the code needs to be duplicated because `donate` and `thank-you` have a completely different layout.

This is somewhat confusing by itself. An additional, unfortunate side-effect is that the `index`, `settings` and `tasks` share the same `project-details` component, which internally, defines a `joinProject`action. This action can't be handled at route level, because it's used in 3 different routes. Instead, right now, it's handled by the component internally.

I'm really not sure what the best architecture here is, but it doesn't feel right. I think `project.hbs` should have the outlet for the varying content, but it should also have the default project layout components such as the header, etc. The subroutes should either share the layout or not be subroutes, or we should find a third way to render it.

That means that our options are either:

- `donate` and `thank-you` should not be part of the project route structure.
- `donate` and `thank-you` can be part of the project route structure, but should then share the project layout
- we should add a named outlet to our application route. "Layoutless" routes such as `donate` and `thank-you` should render directly into this named outlet. This gives us an explicit way to specify a route as layoutless. We could use the route's [`renderTemplate` hook](http://emberjs.com/api/classes/Ember.Route.html#method_renderTemplate) to achieve this behavior

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Xem xét cấu trúc được liệt kê của project.hbs và project/{index,settings,tasks,donate,thank-you}.hbs, tập trung vào layout bị trùng lặp và action joinProject của component project-details. Đọc tài liệu về hook renderTemplate của Ember và so sánh ba tùy chọn routing trong issue. Được xem là hoàn tất khi đã chọn và ghi lại cấu trúc route/layout tránh mã layout bị trùng lặp và xác định rõ owner của action.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
javascript
Lĩnh vực
frontend
Loại issue
Tái cấu trúc
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
20/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.