1

簡単な例の ember.js アプリがあり、インデックス テンプレートにビューを含めたいと考えています。

これは、最初のレンダリングで機能します。

2 番目のルートにリンクして元のルートに戻ると、パス 'App.testView' でビューが見つかりませんというエラーが表示されます

コード例: JSFiddle

HTMLページは...

<div id="test"></div>

<script type="text/x-handlebars">
    <h1>Test Layout</h1>
    {{outlet}}        
</script>

<script type="text/x-handlebars" data-template-name="index">
    <h2>Index Template</h2>
    <p>{{#linkTo test}}test route{{/linkTo}}</p>
    <div>{{view App.testView}}</div>    
</script>

<script type="text/x-handlebars" data-template-name="test">
    <h2>Test Template</h2>
    <p>{{#linkTo index}}index route{{/linkTo}}</p>        
</script>

<script type="text/x-handlebars" data-template-name="testview">
    <p>Test View</p>
</script>

ジャバスクリプト...

window.App = Ember.Application.create();

App.Router.map(function() {
    this.route("test");
});

App.testView = Ember.View.create({
    templateName: 'testview'
});
4

2 に答える 2

5

JSFiddle を修正

Ember.View.extendの代わりに使用すると、Ember.View.createこの問題が修正されます。

ヘルパーのEmber APIによると{{view}}、インスタンスではなくクラスを渡す必要があります。ヘルパーは の新しいインスタンスを作成してView挿入します。

于 2013-02-21T16:33:53.330 に答える
0

特定できる単純な構文ミスの 1 つは、path 属性が追加されていないことです。これでコード Router.map() を更新します

App.Router.map(function() {
    this.route("test",{path:"/"});
});
于 2013-02-21T16:26:32.283 に答える