2

ルートを明示的に定義しているにもかかわらず、アプリケーションがデフォルト ルートを生成し続けます。私は命名規則を見落としていると思いますが、グーグル、スタックオーバーフロー、discuss.emberjs.com'ing、およびコンピューターでの昔ながらの罵倒はまだ私をどこにも連れて行きません.

app/router.js

var Router = Ember.Router.extend();    

Router.map(function(){                 
  this.resource('things', function() {
    this.route('new');                 
  });                                  
});                                    

export default Router;

app/routes/things_new.js

var ThingsNewRoute = Em.Route.extend({     
  model: function() {                       
    window.console.log('hello hello');      
    return this.store.createRecord('thing');
  }                                         
});                                         

export default ThingsNewRoute;             

テンプレートhttp://localhost:8000/#/things/newへのアクセスは適切にレンダリングされ、エラーはありません。ember のロギングからの出力:

generated -> route:application Object {fullName: "route:application"} ember.js:415
generated -> route:things Object {fullName: "route:things"} ember.js:415
generated -> route:things.new Object {fullName: "route:things.new"} ember.js:415
generated -> controller:application Object {fullName: "controller:application"} ember.js:415
Rendering application with default view <(subclass of Ember.View):ember267> Object {fullName: "view:application"} ember.js:415
generated -> controller:things Object {fullName: "controller:things"} ember.js:415
Rendering things with default view <Ember._MetamorphView:ember283> Object {fullName: "view:things"} ember.js:415
generated -> controller:things.new Object {fullName: "controller:things.new"} ember.js:415
Rendering things.new with default view <Ember._MetamorphView:ember293> Object {fullName: "view:things.new"} ember.js:415
Transitioned into 'things.new' ember.js:415
Ember Debugger Active

問題はこれです:

generated -> route:things.new Object {fullName: "route:things.new"} ember.js:415

私が定義しているので、これを生成するべきではありません。私が従わないファイル命名規則はありますか?

また、Chrome で Ember Inspector を見ています。ThingsNewRouteの下の「独自のプロパティ」の下:

routeName: things.newSend
controller: (generated things.new controller)
lastRenderedTemplate: things.new
teardownOutletViews: [ function() { ... } ]
4

2 に答える 2

1

ember-app-kit では、ルートをリゾルバーによって正しく取得するには、ルートをサブディレクトリに配置する必要があります。

たとえば、次のようなルーター マップを持つユース ケースの場合:

Router.map(function(){                 
  this.resource('things', function() {
    this.route('new');                 
  });                                  
}); 

ディレクトリ構造は次のとおりです。

app/
   ...
   routes/
      things/
        new.js
        ...

リゾルバーはルートThingsNewRouteが見つかることを期待しているためapp/routes/things/new.js

それが役に立てば幸い。

于 2013-10-12T17:24:03.930 に答える