0

我已经FIXTURES使用创建ember-model并尝试在模板上访问它,但如果我使用{{model.name}}. 它与each助手一起工作正常。

我想在{{model.name}}不使用任何each帮助器的情况下访问模型的单个节点。

我的型号代码:

Astcart.Home.FIXTURES=[
    {
        "id": "1",
        "logo_url": "img/logo.jpg",
        "name": "gau",
        "list": [
            {
                "id": "1",
                "name": "amit"
            },
            {
                "id": "2",
                "name": "amit1"
            }
        ]
    }
];

我的路由器代码:

  Astcart.HomeRoute = Ember.Route.extend({
    model: function() {
      return Astcart.Home.find();
    }
  });  

我的模板:

<script type="text/x-handlebars" data-template-name="home"> 

    {{model.name}}

    <ul>
        {{#each item in model}}                                         
            <img  {{bindAttr src="item.logo_url"}}></img>               
            <li>{{item.name}}</li>
            {{#each item in item.list}} 
                <li>{{item.name}}</li>
            {{/each}}               
        {{/each}}
    </ul>
</script>

在这里更新了我的代码

4

1 回答 1

1

首先,您需要将您的模板名称更改为index,或将您的路由更改为Astcart.ApplicationRoute,因为模板名称和路由名称必须匹配。

当前配置:

路线

Astcart.IndexRoute

模板

<script type="text/x-handlebars" data-template-name="application">

不工作。

没有参数,将find()执行 a find all data,这将始终返回一个数组。

如果您想要单个数据,您可以执行以下选择之一:

1- 在 find 方法中传递 id,但您需要知道 id:

Astcart.Home.find(1);

这将返回一个对象,然后您可以使用{{model.name}}or {{name}}(因为模板的上下文是model),而无需each视图助手。

2- 获取数组的第一个对象:

{{#with model.firstObject as item}}
    <img  {{bindAttr src="item.logo_url"}}></img>               
    {{item.name}}
{{/with}}

我希望它有帮助

于 2013-09-02T14:51:13.680 回答