0

最近、Ember RC7 にアップグレードしました。次の方法で「linkTo」を使用していくつかの子ルートにマップするいくつかのブートストラップ タブがあります。

{{#linkTo page.tab1 this href=false tagName=li}}{{#linkTo page.tab1}}tab 1{{/linkTo}}{{/linkTo}}
{{#linkTo page.tab2 this href=false tagName=li}}{{#linkTo page.tab2}}tab 2{{/linkTo}}{{/linkTo}}

これは RC7 までは問題なく動作していました。次の警告が表示されます。

DEBUG: ------------------------------- ember.js:364
DEBUG: Ember.VERSION : 1.0.0-rc.7 ember.js:364
DEBUG: Handlebars.VERSION : 1.0.0 ember.js:364
DEBUG: jQuery.VERSION : 1.9.1 ember.js:364
DEBUG: ------------------------------- ember.js:364
render combined-scripts.js:995
DEPRECATION: You provided a quoteless destination route parameter of page.tab1 to the linkTo helper. Soon, this will perform a property lookup, rather than be treated as a string. To get rid of this warning, wrap form.index in quotes. To opt in to this new behavior, set ENV.HELPER_PARAM_LOOKUPS = true
        at null.<anonymous> (http://localhost:9001/bower_components/ember/ember.js:28036:15)
        at Object.anonymous (http://localhost:9001/scripts/compiled-templates.js:225:72)
        at Handlebars.VM.template (http://localhost:9001/bower_components/handlebars/handlebars.js:2212:33)
        at Ember.View.Ember.CoreView.extend.render (http://localhost:9001/bower_components/ember/ember.js:16826:16)
        at Ember.CoreView.Ember.Object.extend._renderToBuffer (http://localhost:9001/bower_components/ember/ember.js:15767:10)
        at Ember.View.Ember.CoreView.extend._renderToBuffer (http://localhost:9001/bower_components/ember/ember.js:17406:23)
        at superWrapper [as _renderToBuffer] (http://localhost:9001/bower_components/ember/ember.js:1082:16)
        at null.<anonymous> (http://localhost:9001/bower_components/ember/ember.js:15748:19)
        at Object.Ember.Instrumentation.instrument (http://localhost:9001/bower_components/ember/ember.js:1465:20) 

page.tab1 と page.tab2 を引用符で囲んでみましたが、リンクが正しく機能しません。双方向バインディングが壊れているようです。これを修正する方法について何か考えはありますか?

UPDATE に JSBin の例が追加されました。「次へ」ボタンをクリックすると、名前フィールドは更新されますが、リンク URL は新しい項目に更新されないことに注意してください。つまり、次のボタンをクリックすると、URL は /item/2 のはずなのに /item/1 のままになります。

http://jsbin.com/atazuy/22/edit

4

1 に答える 1

2

この問題は、引用の使用とは関係ありません。あなたが抱えている問題は、内側{{linkTo}}の s が外側の s と一致しないことです。あなたの例では、外側のコンテキストでは 2 番目のthisパラメーターを提供して{{linkTo}}いますが、内側のコンテキストでは提供していません。この場合this、問題を引き起こしているのはモデルではなくコントローラーです。動作するバージョンについては、http://jsbin.com/atazuy/29を参照してください。

于 2013-08-26T21:46:58.217 に答える