6

我对requirejs有疑问。也许我真的不明白它应该如何工作,但对我来说,requirejs 不允许我将代码拆分成不同的独立脚本似乎适得其反。由于我使用 Play 及其模板语言来构建页面结构,因此我尝试将不同的 javascript 逻辑插入到页面组件的不同部分中。例如:我有一个 main.scala.html,其中包含每个页面需要的组件,以及它们的 js 逻辑。当另一个页面需要导航栏时,我将其与相应的逻辑一起插入。所以我有一个 main.js 和一个 navigation.js。因为它们只依赖于 Jquery mobile 而不是彼此依赖,所以我想用不同的标签加载它们。

所以我的问题是:是否可以使用 requirejs 在一个页面中拥有多个独立的脚本?如果不是,为什么?

提前致谢

4

2 回答 2

3

这个想法是你只有一个data-main加载 的属性main.js,然后在里面main.js你可以有条件地加载其他脚本

if (something) {
  require(["this"], function(this) { ... });
} else {
  require(["that"], function(that) { ... });
}

请参阅:http ://requirejs.org/docs/start.html

还是我误解了这个问题?

于 2012-06-13T12:02:10.223 回答
1

data-main 适用于当您的页面只有一个 requirejs 应用程序时。如果您有多个,请不要使用 data-main。这很简单,这是一个使用 main.js 和 navigation.js 的示例

<script src='require.js'></script>
<script>
   require(['main']);
   require(['navigation']);
</script>

尽管我认为您的页面确实需要navigation.js。将每个页面视为一个应用程序。所以 data-main 像往常一样进入你的 main.js。

然后在 main.js 中:

// start independent load of navigation.js
require(['navigation']);
// load modules required for main
require(['moduleA', 'moduleB'], function(moduleA, moduleB){
    // inside main.js
});
于 2016-06-21T15:06:36.437 回答