1

如文档中所述,使用主干引导您的应用程序的正常方法

var Accounts = new Backbone.Collection;
Accounts.reset(<%= @accounts.to_json %>);

在这里,我们使用服务器端标签<%= ... %>, <?php echo ... ?>等。

但是在我的应用程序中,我从服务器传递了非常薄的 HTML。像这样的东西

<html><head></head><body></body>
<script src="init.js"></script>
<html>

在这种情况下,我应该如何为我的骨干模型和集合引导我的数据?

Backbone 建议不要使用fetch

请注意,不应在页面加载时使用 fetch 来填充集合——加载时所需的所有模型都应该已经引导到位。fetch 旨在为不需要立即需要的接口延迟加载模型。

但我想知道在像我这样的情况下这样做是否正确?

4

2 回答 2

3

我不想将我的意见作为答案,但我想我可以说,“在这个用例中,没有任何技术或其他原因不使用 fetch 在页面加载时加载模型”。8)

于 2012-06-02T10:07:21.003 回答
1

您需要您的 JS 代码由您的服务器端平台解析,并在其上插入数据。

两种方法可以是:

1.让你init.js被你的服务器端解析

<html>
  <script src="init.js.php"></script>
<html>

在你的initi.js.php你可以使用interpolate tags

2. 将数据加载到单独的可解释 JS 文件中

<html>
  <script src="data.js.php"></script>
  <script src="init.js"></script>
<html>

data.js.php可以是这样的:

MyApp.data = <?php echo ... ?>

在您的收藏中,init.js您可以使用。MyApp.datareset

于 2012-06-02T08:50:10.370 回答