开始学习node.js和backbone.js,并使用TodoMVC示例作为我的向导.有几个部分我无法绕过头脑.见下文.
这是app.js.
var express = require('express')
, http = require('http')
, mongoose = require('mongoose')
, models = require('./models')
, routes = require('./routes')
, app = express();
app.configure(function () {
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(require('stylus').middleware({ src: __dirname + '/public' }));
app.use(express.static(__dirname + '/public'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
});
app.configure('development', function () {
app.use(express.errorHandler());
});
routes.init(app);
mongoose.connect("127.0.0.1", "todomvc", 27017);
http.createServer(app).listen(3000);
console.log("Express server listening on port 3000");
Run Code Online (Sandbox Code Playgroud)
Heres是./models:
var mongoose = require('mongoose'),
TodoSchema = new mongoose.Schema({
title: { 'type': …Run Code Online (Sandbox Code Playgroud) javascript model-view-controller node.js backbone.js todomvc
我一直在研究Ember的Todo MVC应用程序.在模型中,我注意到调用了一个commit()方法,Ember.run.once请参阅:https://github.com/addyosmani/todomvc/blob/gh-pages/architecture-examples/emberjs/js/models/todo.js# L9
todoDidChange: function () {
Ember.run.once(this, function () {
this.get('store').commit();
});
}.observes('isCompleted', 'title');
Run Code Online (Sandbox Code Playgroud)
如何包装this.get('store').commit()的Ember.run.once帮助吗?我把方法改为:
todoDidChange: function () {
this.get('store').commit();
}.observes('isCompleted', 'title');
Run Code Online (Sandbox Code Playgroud)
但我没有看到任何明显的差异.我阅读了文档,并且一个普遍的SO讨论无法弄清楚.
这是一个差异没有显示的情况,因为它只是一个小应用程序?
我在TodoMVC示例的index.html中找到了以下代码行:
<html lang="en" data-framework="backbonejs">
Run Code Online (Sandbox Code Playgroud)
有谁知道这个数据元素用于?