为了账号安全,请及时绑定邮箱和手机立即绑定

请问angularjs 和外部js 调用 不属于同一 scope 怎么处理?

/ 猿问

请问angularjs 和外部js 调用 不属于同一 scope 怎么处理?

繁星淼淼 2019-09-03 10:06:14

angularjs 和外部js 调用 不属于同一 scope 怎么处理


查看完整描述

4 回答

?
蓝山帝景

首先Angularjs的Controller是可以嵌套的,你在整个app的顶层设置一个Controller, 内部的Controller自然可以使用父级Controller的scope里的内容了。
其次,外部调用js? 既然你要全局使用,为什么不把代码放到一个Service里面?每个 Service都是一个单例,需要使用的时候,注入一下就可以了。

查看完整回答
反对 回复 2019-09-07
?
米琪卡哇伊

1、浏览器载入HTML,然后把它解析成DOM。
2、浏览器载入angular.js脚本。
3、AngularJS等到DOMContentLoaded事件触发。
4、AngularJS寻找ng-app指令,这个指令指示了应用的边界。
5、使用ng-app中指定的模块来配置注入器($injector)。
6、注入器($injector)是用来创建“编译服务($compile service)”和“根作用域($rootScope)”的。
7、编译服务($compile service)是用来编译DOM并把它链接到根作用域($rootScope)的。
8、ng-init指令将“World”赋给作用域里的name这个变量。
9、通过{{name}}的替换,整个表达式变成了“Hello World”。

查看完整回答
反对 回复 2019-09-07
?
aluckdog

//defineamodulevarmainApp=angular.module("mainApp",[]);//createaservicewhichdefinesamethodsquaretoreturnsquareofanumber.mainApp.service('CalcService',function(MathService){this.square=function(a){returnMathService.multiply(a,a);}});//injecttheservice"CalcService"intothecontrollermainApp.controller('CalcController',function($scope,CalcService,defaultInput){$scope.number=defaultInput;$scope.result=CalcService.square($scope.number);$scope.square=function(){$scope.result=CalcService.square($scope.number);}});就是这样调用service的

查看完整回答
反对 回复 2019-09-07
?
largeQ

Scope(作用域)是angular应用程序中视图(HTML)和控制器(JavaScript)之间的纽带。
也就是说HTML和JavaScript可以通过它来传输、共享数据。Scope是一个对象,有自己的很多的方法和属性,$scope正是创建控制器时传递的Scope对象的一个实例。

延伸知识点:我们知道创建控制器时传递了Scope对象的一个实例,所以一个控制器对应一个Scope对象,在多个控制器之间共享数据怎么办?多个控制器若属于同一个APP,我们可以用$rootScope来实现控制器间的数据共享

查看完整回答
反对 回复 2019-09-07

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信