SproutCore入门教程 - 第一部分

本文为翻译文章:译者:Jacky 译者博客:http://blog.csdn.net/varkychan原文:http://guides.sproutcore.com/getting_started.html 译者前言:由于国内关于SproutCore的中文资源比较少,所以我开始尝试翻译官方网站的相关教程及指南,因为本人英文水平真的一般,语文水平也不咋的,所以在译文可能表达得不
摘要由CSDN通过智能技术生成

本文为翻译文章:

译者:Jacky <jacky@iajax.net>

译者博客:http://blog.csdn.net/varkychan

原文:http://guides.sproutcore.com/getting_started.html

 

译者前言:由于国内关于SproutCore的中文资源比较少,所以我开始尝试翻译官方网站的相关教程及指南,因为本人英文水平真的一般,语文水平也不咋的,所以在译文可能表达得不清晰,甚至是误译的可能,所以发现问题,请不啬向我指点,吾将非常感激!

SproutCore入门教程 - 第一部分

入门


读完本章后,你将能够:

  • 使用SproutCore的模板描绘你的应用界面
  • 委托处理视图(view)用户事件
  • 当模型(models)发生改变时通过绑定(bindings)更新视图(views)

 

通过使用SproutCore从头开始创建一个真实的“代办事项(Todo list)”应用程序,你将学到所有这些内容。


1 跟随

你可以在Github上看到这个应用程序最后完成的源代码。要看运行的效果,点击这里

这里还有一个截屏视频放在Vimeo上。 

 

2 安装SproutCore

这个指南假设你已经安装了SproutCore。如果你还没安装,请现在安装它

 

这份指南需要安装SproutCore 1.6.0 beta版。安装程序在Windows和Mac上都有提供,如果你通过RubyGems来安装,就需要使用 gem install sproutcore --pre 来安装beta版本。

 

3 创建新应用

首先,通过如下命令生成一个基于HTML的新应用。 

 

$ sc-init todos --template

 

这里会创建几个应用程序需要用到的文件,放在 apps/todods 文件夹内。

  • apps/
  •  
    • todos/
      • todos.js – 在这里定义model,view及controller.
      • resources/
        • templates/ – 将所有的Handlebars模板放在这里.
          • todos.handlebars – 应用程序的主模板.
        • images/ – 图片文件放在这里.
        • stylesheets/ – 样式(CSS)文件放在这里.
          • todos.css – 应用程序的主样式文件.
      • tests/
  • Buildfile – 告诉SproutCore如何创建你的应用程序. 通常, 你只要使用默认提供的即可.
  • README – 对项目的说明.

 

现在打开todos.js文件. 你将会看到如下代码:


apps/todos/todos.js

Todos = SC.Application.create();

 

SC.ready(function() {

  Todos.mainPane = SC.TemplatePane.append({

    layerId: "todos",

    templateName: "todos"

  });

});

 

代码中为你的应用程序创建了一个命名空间Todos,然后增加一个新的pane模板。pane负责事件委派和把模板放到DOM中,你会在后面的内容中了解到更多关于这些方面的内容。

 

如果你向sc-init传递一个驼峰式的名字,如ToDos(注意这里的大写字母D),这时命名空间是ToDos,而文件夹的名称则是将命名空间进行下划线分隔,如apps/to_dos。

 

4 定义模型(model)

在这个教程中,我们要创建一个列表,用于管理代办事项(todos)。用户能够创建某个任务的新代表事项,然后在任务完成后可以剔除它。

首先让我们定义一个model,它是由SC.Object派生出来的新子类:


apps/todos/todos.js

Todos = SC.Application.create();

 

Todos.Todo = SC.Object.extend({

  title: null,

  isDone: false

});

 

SC.ready(function() {

  Todos.mainPane = SC.TemplatePane.append({

    layerId: 'todos',

    templateName: 'todos'

  });

});

 

请在建立Todos对象的代码下面插入新代码。


现在我们已经定义了一个具有两个属性的类,这两个属性分别是:title:字符串类型;isDone:布尔类型。


5 使用Controller管理Model

现在我们知道我们的数据是怎样的了,然后我们创建一个controller来管理它。因为我们想要管理一个有序的代办事项列表,因此我们将使用SC.ArrayController来实现它。 


in apps/todos/todos.js

// 在文件未尾加入以下代码

 

Todos.todoListController = SC.ArrayController.create({

  // 以一个空数组初始化数组控制器.

  content: []

});

 

在像 SproutCore 这样的MVC框架中,controller层是作为模型(model)层(只与表示数据的对象相关)和视图(view)层(

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值