zhaoda / spa

A webapp framework for routing control and view transitions
http://zhaoda.net/spa/docs/
MIT License
330 stars 92 forks source link

$view 这个对象为什么是一个文档数组,而不是一个文档对象 #29

Closed phoeson closed 9 years ago

phoeson commented 9 years ago

在view, init, beforeopen, afteropen 等回调函数里面的this为什么是一个文档数据,而不是一个文档对象?

lin-chao commented 9 years ago

嗯?

你的文档对象意思是 $doc这种么?

几个方法里面,this是调用页面的对象呀

类似:

var $page = this

phoeson commented 9 years ago

抱歉,打字打错了,我的意思是$view = this; 这里的$view是一个文档数组,如果要再进行数据绑定的话还需要去取数组中的第一个元素: var $view = this; ko.applyBindings(viewModel, $view.get(0));

这样感觉不是很优雅

lin-chao commented 9 years ago

哦,明白你意思了。

既然是spa必须依赖zepto 或者是 jq,那this是一个是$view会更符合场景

比如经常需要在$view中找到一个button,那

var $view = this var $button = $('button', $view)

这样上下文也会更加连续。

至于你的 ko.applyBindings 这个就是自己的选择的,我觉得是没有办法全部match到的~

zhaoda commented 9 years ago

这个设计没有所谓的好和坏吧,习惯不同而已。