我真的不明白它们是如何有用的。在引入初始值设定项的原始article中,这是代码示例:
App = new Backbone.Marionette.Application();
App.addInitializer(function(){
// add some app initialization code, here
});
App.addInitializer(function(){
// more initialization stuff
// for a different part of the app
});
// run all the initializers and start the app
App.start();
然而,据我所知,^和之间没有区别,而且:
App = new Backbone.Marionette.Application();
// add some app initialization code, here
// more initialization stuff
// for a different part of the app
后一代码的好处是你可以实际控制初始化代码的顺序,而初始化程序是以随机顺序运行的。那么,addInitializer
的优势是什么?
答案 0 :(得分:2)
我认为主要的胜利是语义 - 它是一个非常具有描述性的方法名称 - 以及相关功能的分组。我使用命名函数编写初始化函数,这有助于调试和描述性:
App.addInitializer(function startSomePartOfTheApp () {
});
另一个有用的功能是该函数绑定到Application实例。这使您可以选择混合初始化程序,这在较大的应用程序中很有用。
但最终,您可以按照建议的方式实现相同的功能。
答案 1 :(得分:1)
Marionette应用程序具有初始化程序,因此您可以编写在App.start()之后运行的代码
这有几个用途:
将代码放入将在添加内联脚本后执行的.js文件
<script type='text/javascript'>
$(document).ready(function () {
App.start();
} );
</script>
一旦知道定义了集合,就执行集合的初始提取
有趣的笔记: