将服务器数据传递到RequireJS模块的首选方法是什么?
|
有没有在RequireJS模块中传递服务器数据的首选方法?我们当前的实现类似于以下代码片段;使用\'page \'对象保存所有服务器/动态数据,并将其传递给主引导程序。 (我们目前不希望使用ajax来填充任何依赖项)
从服务器页面:
<script data-main=\"scripts/main\" src=\"scripts/require-jquery.js\"></script>
<script type=\"text/javascript\">
define(\"page\", function () {
return { guid: \"<%=Guid.NewGuid() %>\" };
});
</script>
main.js
require([\"jquery\", \"jquery.alpha\", \"page\"], function ($, alpha, page) {
alpha.initialize(page);
});
jquery.apha.js
define([\"jquery\", \"page\"], function ($, page) {
return {
initialize: function () {
console.log(page.guid);
//logs guid as expected
}
}
});
没有找到相关结果
已邀请:
6 个回复
瞧叮
而不是
),因为为依赖于它的每个对象都创建了一个定义模块。这可能意味着在同一页面中有多个呼叫。而是使用:
通过这种方式,RequireJS将页面识别为模块,因为它是一个单独的文件,并且每页仅会进入您的服务器一次。
目浆搽
然后将我的模块定义为需要配置的内容:
暑袜眠退
磐去裸猜饲
在application.js中:
抵舵
开始,在此之前,我曾经被用来调用要在页面加载时执行的函数,如下所示:
正如@ ziad-saab一样,我发现我能做的最相似的事情不是使用
属性,而是定义一个内联模块:
属性指示
在require.js和所有模块依赖项加载后立即执行模块。忽略它(模块),然后将其定义为内联模块,我可以抛出
变量。 这样,我就不需要处理保存配置的模块,在我的环境中,使用requirejs的过渡也更容易。
帆攀缺锯欧
app.js
some-module.js (在这种情况下,app / bootstrap中需要的layout.js)
请注意,使用race12ѭ引导应用程序,而无需显式调用require可能会起作用,但由于竞态条件。如果由于某种原因定义dto花费的时间超过了requirejs调用主模块脚本所花费的时间,那么它将崩溃。我们不想依靠它,所以我们自己做一切:) 因此,这有时行不通: