区分主干模型和集合

时间:2012-10-11 08:59:22

标签: javascript python django backbone.js

我正在尝试通过几个文档阅读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)

现在这将为我创建一个数据库,我将在一个注释表中 有四列,标题,描述,日期和作者。

当我编写骨干应用程序时,如何定义我的模型和 控制器?什么应该去模型,应该是什么 控制器? 请解释谢谢!

2 个答案:

答案 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中那样渲染整个页面,它们会更改文档中已定义的元素)