简介
这是我第一次尝试Ember(现有的rails应用程序),并且在interWeb上有一些很好的资源,但鉴于我已经阅读了所有内容并且仍然需要更多资源,这里检查笔记会很棒。< / p>
我有一个新模型:Newslink
我为它构建了一个api:api/v1/newslinks.json
api有效:http://localhost:3000/api/v1/newslinks.json
数据
{"newslinks":[{"id":1,"title":"A Sample Post","navlink":"This will be a simple post record."}]}
代码
问题在于Ember似乎让这条路线漏过了我的手(我在下面的代码中做错了,我敢肯定):
的application.js
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require jquery-fileupload/basic
//= require jquery-fileupload/vendor/tmpl
//= require chosen-jquery
//= require bootstrap
//= require bootstrap-notify
//= require jquery.limit-1.2.source
//= require bootstrap-switch
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require app
app.js
App = Ember.Application.create({
LOG_TRANSITIONS: true,
ready: function() {
console.log('App ready');
}
});
App.Router.map(function() {
this.resource('newslinks', { path: '/' });
});
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('newslinks');
}
});
App.NewslinksRoute = Ember.Route.extend({
model: function() {
return App.Newslink.find();
}
});
DS.RESTAdapter.reopen({
namespace: 'api/v1'
});
App.Store = DS.Store.extend({
revision: 13
});
App.Newslink = DS.Model.extend({
name: DS.attr('string')
});
Application.handlebars
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Ember - Latest" />
<meta charset=utf-8 />
<title>Ember Latest</title>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/css/bootstrap.min.css" rel="stylesheet">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/js/bootstrap.min.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://builds.emberjs.com/handlebars-1.0.0.js"></script>
<script src="http://builds.emberjs.com/ember-latest.js"></script>
<script src="http://builds.emberjs.com/ember-data-latest.js"></script>
</head>
<body>
<script type="text/x-handlebars">
<h2>Here I am</h2>
</script>
</body>
</html>
的routes.rb
App::Application.routes.draw do
namespace :api do
namespace :v1 do
resources :newslinks
end
end
我甚至都没有尝试返回数据。只是想看到路由连接,但我收到路由错误。我如何确保Ember看到网址“/ newslinks”?
如果您有任何建议,请告诉我。谢谢!
随机无关观察
Ember.js似乎很像阅读博尔赫斯的 Labyrinths ,这是一件好事,我可以告诉它在随后的阅读中会变得更好,直到一切都完全正确。
答案 0 :(得分:1)
我会使用chrome查看Ember请求的URL。可能会根据您指出的网址'/ newslinks.json'来请求'/ newslinks'不正确
在这种情况下,我会将路径从'/newslinks.json'更改为更合适的REST网址格式'/ newslinks'
答案 1 :(得分:1)
要使其工作从您的IndexRoute
(隐式并自动创建)重定向到您的路由器地图newslinks
中的/
路由声音,作为{newslinks
的路径1}}资源。
例如,将此添加到您的应用中,它应该有效:
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('newslinks');
}
});
工作Demo。
希望它有所帮助。