javascript - 使用 ember 数据和 sails.js 时获取空记录

标签 javascript ember.js handlebars.js sails.js

前言:我是 ember 的新手。

我在 sails.js 中设置了一个节点服务器我在前端使用 Ember 。在我的路线文件中,我有以下内容:

App.ApplicationRoute = Ember.Route.extend({
    model: function(){
        if(window.sessionStorage.getItem('current_user_id')){
            App.CurrentUser = window.sessionStorage.getItem('current_user_id');
            this.store.find('user', App.CurrentUser);
            this.store.find('list', App.CurrentUser);
        }   
    }
});

应该预加载属于当前用户的列表,以便当用户转到 #/lists/index 时,他们的所有列表都已加载。

这是我调用#/lists/:id时服务器的响应

{
  "lists": [
    {
      "name": "popcicle",
      "user_id": 1,
      "createdAt": "2013-12-31T05:26:39.970Z",
      "updatedAt": "2013-12-31T05:26:39.970Z",
      "id": 48
    },
    {
      "name": "happy dance",
      "user_id": 1,
      "createdAt": "2013-12-31T05:28:51.220Z",
      "updatedAt": "2013-12-31T05:28:51.220Z",
      "id": 49
    },
    {
      "name": "something",
      "user_id": 1,
      "createdAt": "2013-12-31T05:34:53.616Z",
      "updatedAt": "2013-12-31T05:34:53.616Z",
      "id": 50
    }
  ]
}

但是,当我在 chrome 中打开 ember 检查器并转到数据 -> App.List 时,它显示了 4 个项目:

Id  Name
1   
48  popcicle
49  happy dance
50  something

这打破了我的观点,因为名称是 undefined

TL/DR 我需要知道为什么 ember 数据有这个空白列表以及如何摆脱它,或者如何在我的 View 中进行条件迭代以使未定义的名称不存在'不要破坏我的应用程序。

这是我的 View 代码以防有帮助:

<script type="text/x-handlebars" data-template-name="lists">
    <div class="left-nav">
      {{partial "listNav"}}
    </div>
    {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="_listNav">
   <h4> Lists </h4>
    <div class="column-span2 left-nav">
        <ul> 
            {{#each list}}
            <li>
                 {{name}}
            </li>
            {{/each}}
        </ul> 
        {{#link-to "lists.new"}}Create List{{/link-to}}
    </div>
</script>

最佳答案

我注意到的一些事情:

关于javascript - 使用 ember 数据和 sails.js 时获取空记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20960133/

相关文章:

javascript - Javascript 如何检查两个字符串是否包含相同的字符?

javascript - (简单)HTML属性是否允许赋值之间有空格

javascript - 使用 jquery ajax mysql 和 php 通过复选框过滤数据

ember.js - 如何将任意模板变量传递到 Handlebars 助手中?

jquery - 使用带有嵌套 div 的 Handlebars 填充 jQuery Accordion

javascript - Handlebars - 将变量传递到点符号中

javascript - Patternlab Handlebars 将数据变量作为字符串文字传递

javascript - 根据ajax响应更改单选按钮值

javascript - 如何在模板中显示 hasMany 模型属性

ember.js - 获取 ember 中的操作目标元素