javascript - 使用 Ember.js 获取元素数组

标签 javascript ajax 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}}

我有一个错误:断言失败:#each 循环的值必须是一个数组。您通过了(生成的列表 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/

关于javascript - 使用 Ember.js 获取元素数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21798317/

相关文章:

javascript - 如何制作图像卡并使其显示在同一页面上

javascript - 将外部 css/js 文件包含到 html 页面中

c# - 远程服务器返回错误: (404) Not Found - HttpWebResponse

javascript - 在 AJAX 启动时加载 GIF/显示文本并在 AJAX 停止时隐藏

javascript - 发布字段数组 w

javascript - Ember 将范围推送到数组

Javascript 将字符串拆分为多个整数值并使用分隔符 "."返回错误值

javascript - 响应地将 div 高度调整为背景图像高度

javascript - 在 JavaScript 中验证十进制数字 - IsNumeric()

ember.js - <OUTDATED> 关于 Ember.js 指南中的 {{linkTo}}