簡體   English   中英

使用Ember.js獲取元素數組

[英]Get array of elements with Ember.js

我有這個Ajax和Ember.js的電話

$.ajax({
    url: '../data',
    type: 'GET',
    cache: false,
    dataType: 'json',
    data: ({
        func: "getAllLists"
    }),
    success: function(data) {
        console.log('DEBUG: GET Data OK');
        var list = [
            {
                uid: data[0].uid
            }
        ];
        App.ListRoute = Ember.Route.extend({
            model: function () {
                return list;
            }
        });
    },
    error: function() {
        console.log('DEBUG: GET Data Failed');
    }
});

這是擔

{{#each}}
<li>
    {{#link-to 'project' this}}
        {{title}}
    {{/link-to}}
</li>
{{/each}}

我有一個錯誤: Assertion Failed: The value that #each loops over must be an Array. You passed (generated list controller) Assertion Failed: The value that #each loops over must be an Array. You passed (generated list controller) 我在做什么錯?

您需要在App.ListRoute內進行$.ajax()調用,而不是相反:

App.ListRoute = Ember.Route.extend({
    model: function () {
        list = $.ajax({
            url: '../data',
            type: 'GET',
            cache: false,
            dataType: 'json',
            data: ({
                func: "getAllLists"
            }),
        }).then( function(data) {
            console.log('DEBUG: GET Data OK');
            var list = [{
                uid: data[0].uid
            }];
        },);
        return list;
    }
});

請注意,直到ajax調用完成,Ember才會進入路由(因為它將等待then()解析。請訪問http://emberjs.com/guides/routing/asynchronous-routing/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM