我正在为一个学习项目构建一个小黑客新闻阅读器,其中我正在阅读的 API 有点非标准(所以除非有人知道如何硬塞它,否则 ember-data 是不可能的)。
项目列表在这里: http: //node-hnapi.herokuapp.com/news而单个项目是这样的:http: //node-hnapi.herokuapp.com/item/6696691
这是我到目前为止所做的事情:http: //jsbin.com/OFeCoR/22/edit ?html,js,output
App = Ember.Application.create()
baseURL = "http://node-hnapi.herokuapp.com"
newsURL = "/news"
itemURL = "/item/"
App.Items = Ember.Object.extend(
id: ""
title: ""
url: ""
points: ""
user: ""
time_ago: ""
comments_count: ""
slug: (->
@get("id")
).property("id")
)
App.Items.reopenClass
all: ->
Ember.$.getJSON(baseURL + newsURL).then (response) ->
items = []
response.forEach (n) ->
items.push App.Items.create(n)
items
App.Router.map ->
@resource "items", ->
@route "item",
path: ":slug"
App.IndexRoute = Ember.Route.extend
beforeModel: ->
@transitionTo "items"
App.ItemsRoute = Ember.Route.extend
model: ->
App.Items.all()
App.ItemsItemRoute - Ember.Route.extend
model: (params) ->
itemID = App.Items.findProperty("id", params.id)
Ember.$.getJSON((baseURL + itemURL + itemID).then (response) ->
item = []
response.forEach (i) ->
item.push App.Item.create(i)
item
)
基本上,我试图从项目中的“项目”中获取 ID 以将其用于 slug 并在 ItemsItemRoute 中,将其推入 URL 以获取单个项目属性。我认为这是我出错的地方(ItemsItemRoute)。
我认为仅在单击链接/操作时才获取单个项目数据而不是从一开始就获取所有项目数据可能是有意义的。关于如何解决这个问题的任何想法?