1

我需要在我的 Ember 应用程序中加载随机项目。为此,我执行以下操作:

Test.ApplicationRoute = Ember.Route.extend({
    events: {
        randomItem: function() {
            var route = this;
            $.getJSON('item/random.json', function(data) {
                Test.Item.find(data).then(function(item) {
                    route.transitionTo('items.show', item);
                });
        });
    }, // ..... etc

这很好用,除了一件事:没有显示嵌套的侧载数据。当items.show通过 a 访问时{{#linkTo 'items.show' item}},项目的子数据也被加载并可见。但是,当randomItem触发此事件时,仅显示直接子级。孩子的孩子不是。

为什么会这样和/或我该如何解决?

4

1 回答 1

0

controller.content.isLoaded事实证明,没有显示工件的原因是,如果内容仍在加载,我会尝试调整视图以显示加载图像。

出于某种原因,以下内容loading...在路由的后续使用中永久显示文本和图标:

{{#if controller.model.isLoaded}}
    <div class="row">
        </div>
        {{#each artifact in controller}}
            {{render "artifacts.show" artifact}}
        {{else}}
            <span class="muted">There are no artifacts.</span>
        {{/each}}
{{else}}
    <i class="icon-spin icon-spinner icon-large"></i> Loading...
{{/if}}

如果有人知道为什么,请告诉我,这样我就可以解决这个问题。

于 2013-06-26T16:14:15.313 回答