Ember.js: ember2.10未定義のルート動的セグメントが機能しなくなりました。

作成日 2016年11月30日  ·  22コメント  ·  ソース: emberjs/ember.js

これはバグというよりはサポートされていない機能のように見えますが、ログに記録すると思いました。

2.9.1から2.10にアップグレードすると、次の例外が発生しました。

"Assertion Failed: You attempted to define a `{{link-to "timecards"}}` but did not pass the parameters required for generating its dynamic segments. You must provide param `login` to `generate`."
#app/router.js
this.route('timecards', {path: '/timecards/:login'}, function() {
  this.route('index', { path: '/' });
  this.route('timecard-day', {path: '/day/:date'});
  this.route('pay-period', {path: '/pay-period/:date'});
});

#app/routes/timecards.js #model hook
model(params) {    
  let login = params.login || this.get('currentUser.login');
  return this.store.peekAll('user').findBy('login', login);
}

個々の子ルートごとにロードするのではなく、親ルートでオプションの動的セグメントを使用してデフォルトのユーザーモデルをロードすると非常に便利でした。

Ember 2.10 Inactive Needs Bug Verification Needs Submitter Response

最も参考になるコメント

これは私たちにとって2.10と2.11をブロックしています。 誰かがこれがリグレッションであることを確認できれば、修正を試みて幸せです。

全てのコメント22件

undefinedを渡し、カスタムのシリアル化フックを実装することで、これを実行できると確信しています。

ここに追加されたエラーメッセージは、一般の人々にとってかなり大きな勝利であり、可能であればそれを維持したいと思います...

@rwjblueが未定義をlink-toヘルパーに渡すと、次の警告がスローされます: This link-to is in an inactive loading state because at least one of its parameters presently has a null/undefined value, or the provided route name is invalid.

私はまた問題を抱えていました:

{{link-to 'projects.project.tasks' project}}
  this.route('projects', function() {
    this.route('project', { path: ':id' }, function() {
      this.route('tasks');
    });
  });

未定義のidについてのEmberエラー。
そのための簡単な修正は、ルーターの:id:project_id

これは実際の修正ではなく、バグとして認定されるに値すると思います。 それ以外の場合、ルーターの動作の変更に関する情報はありませんでした。

@Exelordは、最初に説明されたバグとは無関係であり、バグではありません。 デフォルトの実装では、箱から出してすぐに機能する

@Exelord

@rwjblue @ sly7-7なので、この問題のクリーンな回避策はないようですよね?

@arenoirこの問題を

@locks @pixelhandler
あなたには権利があります、みんな。 ヘルプと説明をありがとう。 しかし実際、2.10より前は機能していました。
今、それはバグまたは予期しない動作だったと思います。

@pixelhandlerここで大丈夫

:point_up:良い複製のように見えます。 そのラベルは削除できます

これがリグレッションと見なされるのか、それともアプリケーションで修正する必要があるのか​​について、私は混乱しています。

これは私たちにとって2.10と2.11をブロックしています。 誰かがこれがリグレッションであることを確認できれば、修正を試みて幸せです。

@arenoirで説明されているのと同じ問題

今日この同じ問題に遭遇します👎

@jakeleboeuf同じ問題が発生し、

[編集]
ここは午前2時で、私の脳はほとんど深宇宙に行きました。 私はそれを間違ってテストしたことに気づきました。 それはまだ続いています...

誰かがこの問題に遭遇した場合、おそらくこれである可能性があります:

import Controller from 'ember';
import { alias } from 'ember-computed';

export default Controller.extend({
  deployments: alias('model')
});

Contoller誤ってインポートしていることに注意してください。 import Controller from 'ember-controller';である必要があります。 これは、現在のプロジェクトで使用しているember-cli-shimsを使用している場合です。 私はあきらめる前に約1時間これに迷い、戻ってきて、自分が間違っていることをはっきりと見ました。

ここではロングショットですが、次のような方法でネイティブのObjectをEmberのObjectクラスで誤ってオーバーライドしたときにこの問題が発生しました。

const { Object } = Ember;

これにより、モデルフック( Object.createが呼び出される)が失敗し、何らかの理由で、スローされた例外が動的セグメントが存在しないことを示していました。 これは、 @ alvincrespoが上記のコメントで言及していることと似ていると

@lrdivええ、私はこれが私と一緒に起こっていると思います。

Assertion Failed: You attempted to define a `{{link-to "control.templates.show"}}` but did not pass the parameters required for generating its dynamic segments. _ember.default.extend is not a function

@brunowegoええ、それは私が得ていたのと同じエラーです。 私たちの場合、これは実際のバグというよりも誤解を招く例外のようです。

@lrdivこれも私に起こっていた、いいキャッチ! :v:

私が行っていたのは、Emberを分解し、ネイティブのObjectをそれ以外の場合はEmber.Object正確にオーバーライドすることconst EmberObject = Ember.Objectようなものに変更し、すべてが正しく行われました。 私もそれをバグバグとは呼ばないので、あなたが上で書いたほとんどすべてについてあなたに同意します:stuck_out_tongue_winking_eye:

@Exelord @acorncom @alvincrespo @arenoir @asvny @bjornharrtell @brunowego @carlbennettnz @dustinfarris @jakeleboeuf @locks @lrdiv @nightsh @rwjblue @ sly7-7 @tarikozketこれはまだ問題です、おそらく私たちは閉じるか、新しい複製を作成する必要がありますこれ、どう思いますか?

とりあえず閉じますが、Emberの現在のリリースで再現できる場合は、お気軽に再開してください。

このページは役に立ちましたか?
0 / 5 - 0 評価