1

如果我使用的是使用资产管道编译所有 Javascript 的 rails 3,这是否意味着我的整个应用程序只能有一个 Knockout 视图模型?如果没有,我如何指定哪个视图模型与哪个视图绑定?在教程代码中,看起来每页绑定了一个视图模型,但这在 Rails 中不起作用,因为所有 JS 都是在第一页加载时加载的。

4

1 回答 1

1

不,您不需要在每个页面上都包含所有 javascript!这是一个非常糟糕的主意。

将javascript限制为单个页面的方法有很多,您应该选择一种:
方法1
方法2
方法3

请,请,请不要尝试在每个页面上加载所有 javascript。

更新(在您下面的评论之后):

我认为您在这里混淆了一些不同的事情。

首先,即使您将所有 javascript 编译成单个 gzipped/uglified 文件,这仍然不会强制您为整个应用程序使用一个淘汰视图模型。该文件可以包含多个视图模型。他们甚至不需要互相了解。

其次,rails 管道的工作方式是将相关或依赖的 javascript 文件连接在一起。这样做是为了减少浏览器为获取每个页面所需的 javascript 而必须发出的请求数。这并不一定意味着您的所有 javascript 都成为一个文件。只是每个页面的javascript成为一个文件。有关更多信息,请查看Rails Asset Pipeline 文档,它很好地解释了它的工作原理以及如何正确使用它。

第三,这些都不意味着您需要编写所有的 javascript,就好像它是一个文件一样。事实上,这是一个坏主意。您应该按功能将您的 javascript 分成相关文件。这使它们可以重复使用,并简化了开发工作。

于 2012-07-31T16:01:49.357 回答