$scope

controller控制器唯一

$scope在angularjs中,你可以把它理解成作用域(其实就是存储数据的地方),很类似javascript的原型链 。

每个不同的controller,都具有它不同的作用域,所以 controller不同,他们的scope是不同的,

当你在 AngularJS 创建控制器时,你可以将 $scope 对象当作一个参数传递:

{{carname}}

当在控制器中添加 $scope 对象时,视图 (HTML) 可以获取了这些属性。

视图中,你不需要添加 $scope 前缀, 只需要添加属性名即可,如:

{{carname}}

如果我们需要一个全局变量该怎么办呢?这就要说 到rootScope了。

$rootScope

module模块唯一

$rootScope是由angularJS加载模块的时候自动创建的。(更准确的来说,$rootScope是由angularJS的核心模块ng创建的。)

rootScope创建好后,会以服务的形式加入到 $injector中。也就是说通过 $injector.get(“$ rootScope “);能够获取到某个模块的根作用域。

$rootScope就相当于一个全局作用域,所以我们保存在其中的东西是全局性的,在任一controller之中都能够使用。

$scope vs $rootScope

scope是html和单个controller之间的桥梁,数据绑定就靠他了。

rootscope是各个controller中scope的桥梁。 用rootscope定义的值,可以在各个controller中使用。

$watch

当我们在创建出scope下的一个新属性的时候,ng就会主动为我们新属性加上$watch这个方法,这个方法会监听我们 的数据变化,当数据变化之后,就立即把view和scope上数据同步。这个过程就称为“双向绑定”。

$state

$stateParams

$stateParams是一个对象,包含 url 中每个参数的键/值。$stateParams可以为控制器或者服务提供 url 的各个部分。 注意:$stateParams必须与一个控制器相关,并且$stateParams中的“键/值”也必须事先在那个控制器的url属性中有定义。

 

作者 admin

百度广告效果展示