gpt4 book ai didi

javascript - 主干 逆向观

转载 作者:搜寻专家 更新时间:2023-11-01 05:01:36 24 4
gpt4 key购买 nike

Backbone 新手在这里。我想开始在 Web 应用程序上使用主干(后端是 Ruby on Rails),直到现在它的客户端功能还很少(一些用于执行 slideToggles 的 jquery,以及几个 ajax 调用)。

我面临的一个问题是 Backbone 似乎构建为让您加载 javascript,然后让它向服务器请求数据(通常是 JSON),然后呈现 View 。这对我来说是 Not Acceptable 。我想获取源自服务器的 html,将其呈现给用户,然后用该 html 填充我的模型(之后,我可以接受从服务器请求 JSON 内容的模型)。

我猜我需要的是某种“逆向 View ”。给出这个 html 的东西:

<ul class="people">
<li><span class="name">Peter</span></li>
<li><span class="name">John</span></li>
</ul>

还有一个 People Collection 和一个带有 name 属性的 Person 模型,可以从中解析出 Peter 和 John(可能使用 View )。

这是存在的东西吗?我是不是以错误的方式处理了整件事?

最佳答案

可以将 Backbone.View 附加到服务器上预呈现的 HTML 页面。我在 this SO answer 中对此进行了更详细的描述。 .当 page needs to be crawlable by search engines .

但是,我不推荐通过解析服务器呈现的 HTML 来初始化模型状态的设计。我建议你改为 bootstrap将初始模型数据作为 JSON 发送到服务页面。像这样的东西:

<body>
<!-- your server-side template code here -->
<script>
window.bootstrap = {
people: <%= @people.to_json %>
};
</script>
</body>

当你初始化你的集合时,你可以简单地从引导数据初始化它们并丢弃引导集合:

var bootstrap = window.bootstrap || {};
var peopleCollection = new PeopleCollection(bootstrap.people);
delete window.bootstrap;

只需确保您的服务器端渲染引擎使用与 Bootstrap 相同的数据,这样您就可以保证渲染页面和初始模型数据同步。

或者,重新考虑像 Backbone 这样的框架是否适合您的需求。你说你的应用程序只有很少的 (javascript) 功能。你真的需要 Backbone 吗?这是一个很棒的框架,但您想要的是The Right Tool For The Job™

关于javascript - 主干 逆向观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14603824/

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