2016-08-21 曹强
相信大家写过AngularJS的都会发现,很多人在处理表单的数据绑定时,都习惯性的把ng-model绑定在$scope的一个对象属性上,而不是直接绑定在scope上。比如说使用而不是。这是为什么呢?这样在controller里面岂不是写起来更复杂吗?每次访问的时候都要多“点”一下,为什么不直接绑在$scope上呢?其实这样写自然是有它的好处的,而且这种写法也是推荐的最佳实践,尤其是在处理嵌套scope的情形下,这样写是很有必要的。为了弄清楚这么写的原因,我们需要深入的研究一下AngularJS里scope的继承。 more 基于原型链的继承 AngularJS的官方文档里有这么一句话来描述scope:A "child scope 继续阅读 »
2015-09-14 veryyoung
在 pom 的 dependencies 部分中,scope 决定了依赖关系的适用范围。 more maven提供了如下的几总scope compile 默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布 继续阅读 »
2016-08-22 曹强
AngularJS中在处理controller时提供了两种语法。 * 第一种是,在DOM中使用ng-controller="TestController",这样在定义controller时需要将model绑定到$scope上。 * 另一种是,在DOM中使用ng-controller="TestController as test",这样其实是将model直接绑定到controller的实例上。 在AngularJS的官方Get Started以及各种文档中,多推荐第一种方式,导致很多人可能都不知道原来还有第二种方式,我也是最近看一篇文章时才注意到这个。那么这两种方式各有什么优劣势呢?在现实的开发中到底更推荐哪种方式呢?今天就来探究 继续阅读 »
2016-04-11 Piasy
Dagger2{:target="_blank"} 已经在项目中用了一年多了,之前曾看到过一篇文章{:target="_blank"},里面说 Scope 注解可以保证依赖在每个 component 生命周期内的单例性,即局部单例。但上周一天和同事一起看生成的 injector 代码,却并未发现这一点是怎么做到的,于是得出“单例性需要 module 的 provide 方法实现来保证”的结论。但我依然对此不甚放心,决定仔细实验一番。测试代码可以在 Github 获取{:target="_blank"}。 继续阅读 »
2015-08-08 Alex Sun
参考资料: Scopes angularjs1.3.0源码解析之scope 继续阅读 »
2014-06-01 W.Y.
本文译自 Dmitry A. Soshnikov 的文章 ECMA-262-3 in detail. Chapter 4. Scope chain. 概述 通过第二章 变量对象的学习我们知道,执行上下文的数据(变量、函数声明、函数形参)都是以属性的方式储存在变量对象中。 我们还知道,变量对象是在进入执行上下文阶段被创建和初始化,随后在执行代码阶段会对属性值进行更新。 本文将深入讨论与执行上下文密切相关的另外一个重要的概念 —— 作用域链(Scope Chain)。 more 定义 如果简单扼要地讲,那么作用域链就是与内部函数息息相关的一个概念。 众所周知,ECMAScript 允许创建内部函数,甚至可以将这些内部函数作 继续阅读 »
2014-03-10 W.Y.
面试或被面试时基本都会涉及到这个最原始的 JavaScript 基础问题,试想一下您有没有在某些时候向别人解释这些概念时,把自己给绕进去了;网络上偶遇一篇英文文章,细读之后觉得有参考价值,文章不长,就顺手翻译了一下,希望某些同学可以用的上。 原文文中的 Scope 翻译成中文是“变量作用域”,译文某些地方直接简称为“作用域” ,Closure 翻译后是“闭包”。Rebort Nyman 的原文是 Explaining JavaScript Scope And Closures,某些不清楚的地方可以直接参考原文。 以下是译文 背景 很多文章或博客都在试着解释作用域和闭包,但大多数都没有解释的很清楚(crystal-clear) 继续阅读 »
2015-07-19 Alex Sun
在AngularJS模块化和依赖注入的基础上,来分析模块加载的详细过程。以如下代码为例: html angular.module('MyModule', []) .controller('ctrl', ['$scope', function($scope) {}]); 继续阅读 »
2016-08-29 ruki
New features Add native shell support for xmake.lua. .e.g add_ldflags("$(shell pkg-config --libs sqlite3)") Enable pdb symbol files for windows Add debugger support on windows (vsjitdebugger, ollydbg, windbg ... ) Add getenv interface for the global scope of xmake.lua Add plugin for generating vstudio project file (vs 继续阅读 »
2016-08-23 曹强
所谓继承,比较熟悉,这里就是指定义一个新的controller/service(不同名),继承原来的controller/service,然后在其基础上重写一些功能。 所谓扩展,这里说的是在不产生新的controller/service的情况下,添加或修改原controller/service的功能。 目前研究的结果就是service可以轻松的实现继承和扩展,而controller貌似只能继承。 more controller的继承 说到controller,我们在前面的文章中介绍过有两种写法:使用$scope或使用controller as。针对这两种方式的区别,我们也可以使用两种不同的继承方式: * 使用controll 继续阅读 »