ember和ember cli的新手,除了jQuery(不是框架)之外没有任何基于JS的框架经验
与Angular中的工作相比,我发现自己一开始就陷入困境,
我有一个关于REST api` http://localhost:8000/api/groups'的静态组列表,那里只有8个项目,我需要将它们显示为搜索条件的下拉列表。没什么好看的
我开始创建一个名为groups
的路线和模型但是app停止了工作,我必须为group
创建一个与groups
模型相同的模型,只有下拉菜单2项
现在我的余烬应用http://localhost:4200/groups
中有一个我不需要的网址,我不希望它在那里,
但是我忽略了它,不得不创建一个城市的下拉列表,api是
http://localhost:8000/api/cities <-- All cities list, needed for admin
http://localhost:8000/api/cities/active <-- For clients to show active cities so they can add their records
http://localhost:8000/api/cities/filled <-- For users, to show them where clients are available
所以在ember中,我为cities
创建了一个路径和模型,并将同一模型复制为city
只是为了显示下拉列表中的城市列表,我需要显示已填充的城市,我创建了ember g route city/filled
并创建了文件夹,但其模型也与其他两个模型相同。
Ajax调用未发送到city/filled
网址,现在我最终有了
http://localhost:4200/cities // useless for me
http://localhost:4200/cities/filled //useless for me
并且在填充中我看到ajax调用,但是http://localhost:8000/api/cities
两次,加载相同的数据。我尝试在我的应用程序中添加一个下拉列表,并在浏览器中打开http://localhost:4200/cities/filled
,并且,它将ajax调用发送到同一个URL 3次,一个用于application.hbs,一个用于cities.hbs,一个用于city / filled。如果在单个请求中已经从相同的URL中提取了相同的数据,为什么要加载3次?
在角度我只是调用一个自定义网址,我可以得到数据,但是为了实现它很难抓住这些小东西并且没有任何帮助
答案 0 :(得分:1)
active
和filled
是您的城市资源的过滤器,这些不是独立资源,因此您应该尝试将它们用作查询参数。喜欢
http://localhost:8000/api/cities?type=filled
http://localhost:8000/api/cities?type=active
Facebook将此样式用于查询参数。您还可以使用查询参数来获取资源的分页数据,例如第一页和每页25条记录,请求将如下所示:
http://localhost:8000/api/cities?page=1&records=25