gpt4 book ai didi

javascript - Handlebars 无法正确渲染模型中的内容

转载 作者:行者123 更新时间:2023-11-28 19:50:46 25 4
gpt4 key购买 nike

我在渲染 Ember 模型的内容时遇到一些问题。这是我试图显示其内容的“新闻”模型;它是 HTML 文本,因此当我在模板中渲染它时,我尝试使用三重大括号,但没有显示任何内容。当我只使用普通的双大括号时,我得到的只是:

<App.News:ember291:14>

而不是模型中的实际内容。我已经使用 Ember chrome 扩展进行了检查,数据确实存在于模型中。

这是我的模型、路线和模板。

型号

App.News = DS.Model.extend({
title: DS.attr('string'),
content: DS.attr('string'),
date: DS.attr('date'),
author: DS.attr('string'),
category: DS.attr('string'),
summary: DS.attr('string')
});

路线

App.NewsItemRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('news', params.id);
}
});

模板

<h1>{{ title }}</h1>
<small>{{format-time date}} by {{ author }} in {{ category }}</small>
<hr/>

<p> {{ content }} </p>

设置了正确的标题、日期、作者和类别,但内容没有设置。

最佳答案

您有多种方法可以正确显示内容:

<p> {{ content.content }} </p>
<p> {{ model.content }} </p>

{{#with model}}
{{content}}
{{/with}}

http://emberjs.jsbin.com/pivet/1/edit

当您在模型 Hook 中返回数组或对象时,Ember 会自动生成 ArrayControllerObjectController对于每种情况,并将模型内容分配给其内容属性。

在您的情况下,ObjectController继承ObjectProxy它将所有未由自身定义的属性转发到其代理的内容属性,但内容属性并未被代理。

由于这种代理能力,您可以读取两种格式的数据:

{{model.title}} === {{title}}

但是,它在您的内容属性中不起作用。

关于javascript - Handlebars 无法正确渲染模型中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23486738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com