我正在尝试通过几个文档阅读Backbonejs。这是一个MVC 客户端框架。 MVC代表模型,视图和 控制器。
我来自django背景,已经做了更多。可能是我 最好通过与此相关的理解。
对我来说,模型是这样的:
class Note(models.Model):
title = models.CharField()
description = models.TextField()
date = models.DateField(auto_now_add=True)
author = models.ForeignKey(UserProfile)
现在这将为我创建一个数据库,我将在一个注释表中 有四列,标题,描述,日期和作者。
当我编写骨干应用程序时,如何定义我的模型和 控制器?什么应该去模型,应该是什么 控制器? 请解释谢谢!
答案 0 :(得分:1)
模型是任何JavaScript应用程序的核心,包含交互式数据以及围绕它的大部分逻辑:转换,验证,计算属性和访问控制。
示例:
Person = Backbone.Model.extend({
defaults: {
name: 'Fetus',
age: 0,
children: []
},
initialize: function(){
alert("Welcome to this world");
}
});
Backbone没有传统mvc框架中的控制器,但使用路由器。 Backbone路由器用于路由您的应用程序URL。在传统的MVC意义上,它们并不一定适合语义
示例:
var AppRouter = Backbone.Router.extend({
routes: {
"/posts/:id": "getPost",
"*actions": "defaultRoute" // Backbone will try match the route above first
},
getPost: function( id ) {
// Note the variable in the route definition being passed in here
alert( "Get post number " + id );
},
defaultRoute: function( actions ){
alert( actions );
}
});
在主干中,您没有数据库连接等,但是您使用Rest与备份服务器的交互
我建议你按照这些截屏来解释你到底是什么骨干: https://peepcode.com/products/backbone-js
答案 1 :(得分:0)
我看这个。它看起来很钝,但我尝试将主干元素与django元素进行比较。
主干集合相当于Django中的QuerySet对象。 骨干中的模型(如Django中)仅采用数据定义。 路由器对象就像Django URL调度程序。 视图由它们影响的元素确定范围(而不是像在django中那样渲染整个页面,它们会更改文档中已定义的元素)