San*_*der 16 javascript asp.net-mvc backbone.js
因此,构建一个使用多个(现在为2个)全局集合的应用程序,它是文档和患者的目录,它们有关系,但不是1个文档或属于1个患者的文档列表,因此它们是事实上2个独立的收藏,
我的应用程序是在模块系统中构建的,与此处描述的非常类似:http: //weblog.bocoup.com/organizing-your-backbone-js-application-with-modules
backbone.js文档说关于bootstrapping,做这样的事情,
<script>
Accounts.reset(<%= @accounts.to_json %>);
</script>
Run Code Online (Sandbox Code Playgroud)
在Rails应用程序中,我需要在asp.net MVC3中以不同的方式执行,很可能我只打印出我的json字符串而没有<%=%>这不是razor视图引擎样式)
但我的问题是,
这Accounts.reset(...data...);
只是在我的标记中浮动,它在我的模块系统中没有任何好的结构,是不是有办法很好地做到这一点?从我的模块中我可以获取数据的位置?
还有另外一个问题,假设我的骨干应用程序http://example.com/#documents中有一条路线
并且有人直接调用此链接,我的应用程序是否准备好数据(来自引导程序),在路由本身执行之前?
Der*_*ley 10
我倾向于设置application
对象 - 一个封装启动应用程序所需的所有代码的对象.然后我将参数带入该对象的构造函数中,以便app对象可以使用它们.将预加载的JSON数据传递到app对象是我要做的事情之一,以保持代码的健全和封装.
它通常是这样的:
MyApp = (function(Backbone, _){
var MyModel = Backbone.Model.extend({});
var MyCollection = Backbone.Collection.extend({
model: MyModel
});
var MyView = Backbone.View.extend({
initialize: function(){
this.collection.bind("reset", this.render, this);
},
render: function(){
// do stuff with the collection here
}
});
var myApp = function(initialModels){
this.start = function(){
this.models = new MyCollection();
this.myView = new MyView({collection: this.models});
this.models.reset(initialModels);
};
};
return myApp;
})(Backbone, _);
Run Code Online (Sandbox Code Playgroud)
然后在我需要启动应用程序的页面中,我这样做:
<script language="javascript">
var myApp = new MyApp(<%= mymodels.to_json %>);
myApp.start();
</script>
Run Code Online (Sandbox Code Playgroud)
那当然是rails版本.只需将<%= ... %>
您的版本替换为ASP.NET MVC中的Razor语法.
归档时间: |
|
查看次数: |
4991 次 |
最近记录: |