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

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


繁星淼淼
浏览 1074回答 4
4回答

蓝山帝景

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

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的

largeQ

Scope(作用域)是angular应用程序中视图(HTML)和控制器(JavaScript)之间的纽带。也就是说HTML和JavaScript可以通过它来传输、共享数据。Scope是一个对象,有自己的很多的方法和属性,$scope正是创建控制器时传递的Scope对象的一个实例。延伸知识点:我们知道创建控制器时传递了Scope对象的一个实例,所以一个控制器对应一个Scope对象,在多个控制器之间共享数据怎么办?多个控制器若属于同一个APP,我们可以用$rootScope来实现控制器间的数据共享
打开App,查看更多内容
随时随地看视频慕课网APP