【发布时间】:2013-11-21 03:24:39
【问题描述】:
我正在为一个学习项目构建一个小型黑客新闻阅读器,我正在阅读的 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)。
我认为仅在单击链接/操作时才获取单个项目数据而不是从一开始就获取所有项目数据可能是有意义的。有什么想法可以解决这个问题吗?
【问题讨论】:
标签: javascript ember.js coffeescript ember-data