mirror of https://github.com/vuejs/vue.git
				
				
				
			make it cleaner
This commit is contained in:
		
							parent
							
								
									d4beb35b68
								
							
						
					
					
						commit
						b379274b31
					
				|  | @ -29,7 +29,7 @@ | |||
|                         class="todo" | ||||
|                         sd-each="todo:todos" | ||||
|                         sd-show="todoFilter(todo)" | ||||
|                         sd-class="completed:todo.completed, editing:todo.editing" | ||||
|                         sd-class="completed:todo.completed, editing:editedTodo===todo" | ||||
|                     > | ||||
|                         <div class="view"> | ||||
|                             <input | ||||
|  | @ -44,7 +44,7 @@ | |||
|                         <input | ||||
|                             class="edit" | ||||
|                             type="text" | ||||
|                             sd-focus="todo.editing" | ||||
|                             sd-focus="editedTodo===todo" | ||||
|                             sd-on="blur:doneEdit, keyup:doneEdit | key enter, keyup:cancelEdit | key esc" | ||||
|                             sd-value="todo.title" | ||||
|                         > | ||||
|  |  | |||
|  | @ -1,7 +1,4 @@ | |||
| seed.config({ debug: false }) | ||||
| 
 | ||||
| var filters = { | ||||
|     // need to access todo.completed in here so Seed.js can capture dependency.
 | ||||
|     all: function (todo) { return todo.completed || true }, | ||||
|     active: function (todo) { return !todo.completed }, | ||||
|     completed: function (todo) { return todo.completed } | ||||
|  | @ -46,19 +43,19 @@ var Todos = seed.ViewModel.extend({ | |||
| 
 | ||||
|         editTodo: function (e) { | ||||
|             this.beforeEditCache = e.item.title | ||||
|             e.item.editing = true | ||||
|             this.editedTodo = e.item | ||||
|         }, | ||||
| 
 | ||||
|         doneEdit: function (e) { | ||||
|             if (!e.item.editing) return | ||||
|             e.item.editing = false | ||||
|             if (!this.editedTodo) return | ||||
|             this.editedTodo = null | ||||
|             e.item.title = e.item.title.trim() | ||||
|             if (!e.item.title) this.removeTodo(e) | ||||
|             todoStorage.save() | ||||
|         }, | ||||
| 
 | ||||
|         cancelEdit: function (e) { | ||||
|             e.item.editing = false | ||||
|             this.editedTodo = null | ||||
|             e.item.title = this.beforeEditCache | ||||
|         }, | ||||
| 
 | ||||
|  |  | |||
|  | @ -391,7 +391,9 @@ CompilerProto.define = function (key, binding) { | |||
|         enumerable: true, | ||||
|         get: function () { | ||||
|             var value = binding.value | ||||
|             if ((!binding.isComputed && (value === undefined || !value.__observer__)) || Array.isArray(value)) { | ||||
|             if ((!binding.isComputed && | ||||
|                 (value === undefined || value === null || !value.__observer__)) || | ||||
|                 Array.isArray(value)) { | ||||
|                 // only emit non-computed, non-observed (tip) values, or Arrays.
 | ||||
|                 // because these are the cleanest dependencies
 | ||||
|                 compiler.observer.emit('get', key) | ||||
|  |  | |||
|  | @ -30,7 +30,7 @@ module.exports = { | |||
|     focus: function (value) { | ||||
|         var el = this.el | ||||
|         setTimeout(function () { | ||||
|             el[value ? 'focus' : 'focus']() | ||||
|             if (value) el.focus() | ||||
|         }, 0) | ||||
|     }, | ||||
| 
 | ||||
|  |  | |||
|  | @ -64,7 +64,7 @@ module.exports = { | |||
|                 if (compiler.each) { | ||||
|                     e.item = vm[compiler.eachPrefix] | ||||
|                 } | ||||
|                 handler.call(vm, e) | ||||
|                 handler.call(ownerVM, e) | ||||
|             } | ||||
|             this.el.addEventListener(event, this.handler) | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,4 @@ | |||
| /* | ||||
|  *  Variable extraction scooped from https://github.com/RubyLouvre/avalon 
 | ||||
|  */ | ||||
| // Variable extraction scooped from https://github.com/RubyLouvre/avalon 
 | ||||
| var KEYWORDS = | ||||
|         // keywords
 | ||||
|         'break,case,catch,continue,debugger,default,delete,do,else,false' | ||||
|  | @ -32,7 +30,13 @@ function getVariables (code) { | |||
| } | ||||
| 
 | ||||
| module.exports = { | ||||
|     parseGetter: function (exp) { | ||||
| 
 | ||||
|     /* | ||||
|      *  Parse and create an anonymous computed property getter function | ||||
|      *  from an arbitrary expression. | ||||
|      */ | ||||
|     parseGetter: function (exp, compiler) { | ||||
|         // extract variable names
 | ||||
|         var vars = getVariables(exp) | ||||
|         if (!vars.length) return null | ||||
|         var args = [], | ||||
|  | @ -40,9 +44,15 @@ module.exports = { | |||
|             hash = {} | ||||
|         while (i--) { | ||||
|             v = vars[i] | ||||
|             // avoid duplicate keys
 | ||||
|             if (hash[v]) continue | ||||
|             hash[v] = 1 | ||||
|             // push assignment
 | ||||
|             args.push(v + '=this.$get("' + v + '")') | ||||
|             // need to create the binding if it does not exist yet
 | ||||
|             if (!compiler.bindings[v]) { | ||||
|                 compiler.rootCompiler.createBinding(v) | ||||
|             } | ||||
|         } | ||||
|         args = 'var ' + args.join(',') + ';return ' + exp | ||||
|         /* jshint evil: true */ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue