3

/admin/プレフィックスで実行される管理システムの構築を開始しようとしています。

これが私のルートファイルです

App.Router.reopen
  location: 'history'
  rootURL: '/admin'

App.IndexRoute = Ember.Route.extend
  setupController: (controller, model) ->
    @controllerFor('application').set('currentRoute', 'home')

/ adminに移動すると、次のエラーが発生します。

Uncaught Error: No route matched the URL '/admin' 

私はemberjsから始めたばかりで、私のコードはこのシリーズに基づいています

Ember version: v1.0.0-pre.4
Ember-data current api revision:: 11
4

2 に答える 2

3

old-routerでは、ルートを解決するときに'rootURL'プロパティは無視されていました。emberの最新バージョンでは、rootURLはリンクを構築するときにのみ使用されるようです。これがバグなのか見落としなのかわからない。回避策として、代わりにこれを試してください。

App.Router.map(function() {    
  this.resource("admin",  { path: "/admin" }, function() {
    this.route("other");
  });
});

App.IndexRoute = Ember.Route.extend({
  redirect: function() {
    this.transitionTo('admin');
  }
});
于 2013-01-20T22:51:26.260 に答える
1

emberjsでのルーティングについて話すとき、それは使用しているバージョンによって異なります。1.0pre2と1.0pre3の間でAPIに大きな変更がありました。www.emberjs.comのドキュメントは、新しいAPIについてすでに最新であり、理解しやすいものです。

以下に示す非常に小さな例を示します

  • '/members'にあるすべてのメンバーの概要に自動的にリダイレクトするIndexRoute。
  • IDに基づく動的ルーティング
  • パラメータが「id」ではなく他の何かである場合のシリアル化/逆シリアル化。以下の例では、「refId」(参照IDを表します)です。

ええと、例は実際には公式のドキュメント以上のものを示していません。しかし、アドオン情報は常に素晴らしいものです。

だから、これが役立つことを願っています。乾杯。

App.Router.map(function() {    
  this.resource("members", { path: '/members' });
  this.resource("member",  { path: "/members/:refId" }, function() {
    this.route("delete");
  });
});

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

App.MembersRoute = Ember.Route.extend({
  model: function() {
    return App.Member.findAll();
  }
});

App.MemberRoute = Ember.Route.extend({
  model: function(params) {
    return App.Member.find(params.refId);
  },
  // overwrite default serializer (defaults to 'id', member has 'refId')
  serialize: function(model) {
    return { refId: model.refId };
  }
});
于 2013-01-20T22:42:25.277 に答える