当前位置:首页>开发>正文

angular的scope怎么销毁 angular 是什么意思

2023-05-24 01:01:31 互联网 未知 开发

 angular的scope怎么销毁 angular 是什么意思

angular的scope怎么销毁

可以使用$injector通过$rootScope关键字检索的一个根作用域。

  可以通过$new()方法创建子作用域。(大多子作用域是在HTML模板被执行编译时自动生成)

  格式:$rootScope.Scope([Providers],[instanceCache])

  [Providers]:当前作用域需要被提供的服务工厂地图。默认是ng。

  [instanceCache]:为需要providers追加/重写的服务提供预实例化服务。

angular 是什么意思

angular 英[ˈæŋgjələ(r)] 美[ˈæŋɡjəlɚ]
adj. 有角的 用角测量的,用弧度测量的 生硬的,笨拙的 (人) 瘦削的
[例句]He had an angular face with prominent cheekbones.
他的脸棱角分明,颧骨突出。

angularjs一些问题

其实这俩种方法在使用的时候,并没有什么不同
区别主要是在于后期线上优化js代码的时候,js的压缩器会将一些局部变量做缩写,比如
app.controller(MyCtrl , function($scope , $filter){
$scope.name = $filter(...)(xxxx)
})

===> 会压缩为
app.controller(MyCtrl , function(a , b){
a.name = b(...)(xxxx)
})

这样,压缩后的代码里,angular无法识别a和b这俩个server,就会报错了
而使用了第二种方法来写,就不会出现这种错误
app.controller(MyCtrl , [$scope,$filter,function($scope , $filter){
$scope.name = $filter(...)(xxxx)
}])

===> 会压缩为
app.controller(MyCtrl , [$scope,$filter,function(a , b){
a.name = b(...)(xxxx)
}])

这个执行起来就不会有错

-----------------

主要是因为angular在执行controller的方法的时候,需要知道这个controller的依赖参数
如果是用第一种方法来写,则参数名是不能随便写的,因为angular通过解析function的源码来取到依赖参数名
比如app.controller(ctrl , function($scope , $filter){}) 通过解析这个代码,就会知道这个ctrl会依赖 $scope 和 $filter 这俩个服务,如果把这俩个名字写错了,那就无法执行了

第二种方法相当于手动声明了依赖参数和队列顺序,angular就不需要解析源码里面的参数
app.controller(ctrl , [$scope , $filter , function($scope , $filter){}])
这样写,相当于手动声明依赖参数

angularjs 怎样注销事件

参考以下方法:
$scope.$on("$destroy", function() {
//清除配置,不然scroll会重复请求
})

在Controller中监听$destory事件,这个事件会在页面发生跳转的时候触发。
在页面跳转之后,这个页面监听的一些全局事件,比如window.scroll事件在下一页scroll的时候还会继续被触发
在这个事件的回调中,清除当前页面的监听或者一些参数保证下面的页面不会再触发当前页面的事件回调

最新文章