相信大家写过AngularJS的都会发现,很多人在处理表单的数据绑定时,都习惯性的把ng-model绑定在$scope的一个对象属性上,而不是直接绑定在scope上。比如说使用而不是。这是为什么呢?这样在controller里面岂不是写起来更复杂吗?每次访问的时候都要多“点”一下,为什么不直接绑在$scope上呢?其实这样写自然是有它的好处的,而且这种写法也是推荐的最佳实践,尤其是在处理嵌套scope的情形下,这样写是很有必要的。为了弄清楚这么写的原因,我们需要深入的研究一下AngularJS里scope的继承。
more
基于原型链的继承
AngularJS的官方文档里有这么一句话来描述scope:A "child scope
继续阅读 »
在 pom 的 dependencies 部分中,scope 决定了依赖关系的适用范围。
more
maven提供了如下的几总scope
compile
默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布
继续阅读 »
AngularJS中在处理controller时提供了两种语法。
* 第一种是,在DOM中使用ng-controller="TestController",这样在定义controller时需要将model绑定到$scope上。
* 另一种是,在DOM中使用ng-controller="TestController as test",这样其实是将model直接绑定到controller的实例上。
在AngularJS的官方Get Started以及各种文档中,多推荐第一种方式,导致很多人可能都不知道原来还有第二种方式,我也是最近看一篇文章时才注意到这个。那么这两种方式各有什么优劣势呢?在现实的开发中到底更推荐哪种方式呢?今天就来探究
继续阅读 »
参考资料:
Scopes
angularjs1.3.0源码解析之scope
继续阅读 »
Dagger2{:target="_blank"} 已经在项目中用了一年多了,之前曾看到过一篇文章{:target="_blank"},里面说 Scope 注解可以保证依赖在每个 component 生命周期内的单例性,即局部单例。但上周一天和同事一起看生成的 injector 代码,却并未发现这一点是怎么做到的,于是得出“单例性需要 module 的 provide 方法实现来保证”的结论。但我依然对此不甚放心,决定仔细实验一番。测试代码可以在 Github 获取{:target="_blank"}。
继续阅读 »
面试或被面试时基本都会涉及到这个最原始的 JavaScript 基础问题,试想一下您有没有在某些时候向别人解释这些概念时,把自己给绕进去了;网络上偶遇一篇英文文章,细读之后觉得有参考价值,文章不长,就顺手翻译了一下,希望某些同学可以用的上。
原文文中的 Scope 翻译成中文是“变量作用域”,译文某些地方直接简称为“作用域” ,Closure 翻译后是“闭包”。Rebort Nyman 的原文是 Explaining JavaScript Scope And Closures,某些不清楚的地方可以直接参考原文。
以下是译文
背景
很多文章或博客都在试着解释作用域和闭包,但大多数都没有解释的很清楚(crystal-clear)
继续阅读 »
本文译自 Dmitry A. Soshnikov 的文章 ECMA-262-3 in detail. Chapter 4. Scope chain.
概述
通过第二章 变量对象的学习我们知道,执行上下文的数据(变量、函数声明、函数形参)都是以属性的方式储存在变量对象中。
我们还知道,变量对象是在进入执行上下文阶段被创建和初始化,随后在执行代码阶段会对属性值进行更新。
本文将深入讨论与执行上下文密切相关的另外一个重要的概念 —— 作用域链(Scope Chain)。
more
定义
如果简单扼要地讲,那么作用域链就是与内部函数息息相关的一个概念。
众所周知,ECMAScript 允许创建内部函数,甚至可以将这些内部函数作
继续阅读 »
在AngularJS模块化和依赖注入的基础上,来分析模块加载的详细过程。以如下代码为例:
html
angular.module('MyModule', [])
.controller('ctrl', ['$scope', function($scope) {}]);
继续阅读 »
Website
Sources
Changelog
Changes
Change install and uninstall actions
Update templates
Improve to check function
Bugs fixed
#7: Fix create project bug with '[targetname]'
#9: Support clang with c++11
Fix api scope leaks bug
Fix path bug for windows
Fix check function bug
Fix check toolchains failed
Fix compile fa
继续阅读 »
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
继续阅读 »