xufei

Results 105 comments of xufei

https://github.com/lifesinger/lifesinger.github.com/issues/184 补个引用

这篇从一个月之前就开始动手,陆续写了这么久,花掉了这一阵很多的业余时间,其中整合了过去写的几段东西,到今天中午,还是不能完全满意,想想还是发出来算了,有认识不到的地方,希望大家指正吧。

对官方公布细节的翻译在这里:https://github.com/xufei/blog/issues/8

@LiuJi-Jim getter这个的问题在哪里啊,我没明白,getter里面本来就是不该放逻辑的……这种文本的转换应当是通过filter去做啊,因为如果你需要在模型里做getter的转换,基本上一定是给视图用的,所以用filter很合适。假如模型中还存在别的转换,那就是动用$watch的时候,属于在模型内部的关联。 web components这段,可能你没明白我意思,我举个例子: 你有一个组件 ``` HTML ``` bar属性用于接收一个数字,然后把组件内部的某个东西创建这个数字这么多个,并且显示出来,这本身不会有任何问题,但考虑一个场景,我想把这个数字动态传入,这个数字从哪里来呢?从外层作用域的某个变量中来,如果是普通元素,是不是你要写: ``` HTML ``` 你看,a的值可以从输入框传入span并显示,但是传不到组件的bar里。如果你想里面扫里面的,那么,组件在解析插值表达式的时候,从哪里去获取这个a?所以这个问题的关键在于外层世界与组件的传值,别的是没有问题的,其他时候大家都各自做自己的事好了。 样式这块,碰到web components的时候,还是需要重新规划,思路跟之前的大有不同,我想想。

@LiuJi-Jim 在Angular里面,是可以把filter看作数据getter的装饰器的,它的职责其实就是干这些事。 绑定是有问题的。 这个绑定实现不了,原因是angular不知道组件有bar属性,它必须先穷举,必须预先知道元素上有哪些可插值属性,然后挨个去解析,还要区分找到的是属性还是方法。就算找到了bar,也没法知道它是不是要插值。就算知道它是要插值的,在计算出真实结果传入之前,已经把整个插值表达式传到组件内部了,一个不合法字符串。 所以问题都在内外传递这一步上。

@hax 他的意思是:不要让绑定扫描机制跨越组件内外。我举个例子: 之前Angular里面的元素指令,如果我们造这么个元素Panel,把它放在一个div中: ``` HTML ``` 比如这个TestCtrl是外层的视图模型,里面的所有变量,其实可以在Panel的内部实现中用于绑定。 但是如果用Web Components来实现这个自定义元素Panel,这个事情是非常困难的,所以干脆就不要想这些事,组件外的东西限制到组件外,组件内的东西如果有绑定,内部自行通过一个公共类处理。 但我的疑问在于,假如恰好在组件直接使用的时候,要从外部带入一个值,怎么办? 比如TestCtrl里面有变量a和b,我只是想这样: ``` HTML ``` 这个从使用者的角度,并未破坏Web Components的封装性,因为没有干涉内部实现,所以应当还是允许比较好,否则,自定义元素与原生元素的行为就不一致了。

@hax 他意思是,内外各自绑各自的,但是如果像我上面举的例子,那个表达式只能让外层去解析,内层能拿到表达式,拿不到执行上下文,还是绑不了

这篇是上周五在IBM交流时候讲的,幻灯片地址在[这里](http://xufei.github.io/slides/2015/angular-performance.html#0)

@hax 纪晓岚来修好了。。。

@shanghaikid 中小型管控系统的pc端,这类形态是肯定没有问题的,其他的,有的不推荐,有的需要开发者有较高的意识和技能。