0

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

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

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

4

2 回答 2

1

模型是任何 JavaScript 应用程序的核心,包含交互式数据以及围绕它的大部分逻辑:转换、验证、计算属性和访问控制。

例子:

Person = Backbone.Model.extend({
    defaults: {
        name: 'Fetus',
        age: 0,
        children: []
    },
    initialize: function(){
        alert("Welcome to this world");
    }
});

Backbone 没有传统 mvc 框架中的控制器,而是使用路由器。骨干路由器用于路由您的应用程序 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

于 2012-10-11T18:35:49.503 回答
0

我看这个。它看起来很迟钝,但我尝试将骨干元素与 django 元素进行比较。

骨干集合相当于 Django 中的 QuerySet 对象。主干中的模型(如在 Django 中)只接受数据定义。路由器对象就像 Django URL 调度程序。视图由它们影响的元素限定范围(而不是像在 django 中那样呈现整个页面,它们会更改文档中定义的元素)

于 2012-10-11T14:30:12.800 回答