1

介绍

这是我第一次尝试 Ember(现有的 rails 应用程序),并且在 interWeb 上有一些很棒的资源,但鉴于我已经阅读了所有资源并且仍然想要更多,在这里查看笔记会很棒。

我有一个新模型: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 似乎让路线从它手中溜走了(我敢肯定,我在下面的代码中做错了):

应用程序.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

应用程序.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')
    });

应用程序.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>

路由.rb

App::Application.routes.draw do

  namespace :api do
    namespace :v1 do
      resources :newslinks
    end
  end

我什至还没有尝试返回数据。只想查看路由连接,但出现路由错误。如何确保 Ember 看到 URL“/newslinks”?

如果您有任何建议,请告诉我。谢谢!

随机无关观察

Ember.js 看起来很像阅读 Borges 的Labyrinths,这是一件好事,我可以说它会在后续阅读中变得更好,直到一切都变得完美。

4

2 回答 2

1

我会使用 chrome 查看 Ember 请求的 URL。根据您指出的 url 是“/newslinks.json”,它可能请求不正确的“/newslinks”

在这种情况下,我会将路由从“/newslinks.json”更改为更合适的 REST url 格式的“/newslinks”

于 2013-08-07T19:04:36.913 回答
1

为了使它工作从您的IndexRoute(这是隐式的并自动创建的)重定向到您的newslinks路由,因为您在路由器映射/中作为您的newslinks资源的路径。

例如,将此添加到您的应用程序中,它应该可以工作:

App.IndexRoute = Ember.Route.extend({
  redirect: function() {
    this.transitionTo('newslinks');
  }
});

工作演示

希望能帮助到你。

于 2013-08-07T19:55:52.510 回答