使用来自不同页面的一个AngularJS代码

使用来自不同页面的一个AngularJS代码,angularjs,Angularjs,有没有办法从不同的页面调用一个AngularJS代码(函数)?我找到了两种方法,但都不能解决问题 第一种方法是使用$rootScope。然后,我的函数逻辑将被放入$rootScope var sharedFunctions=angular.module('shared',['$rootScope']); sharedFunctions.run( function($rootScope){ $rootScope.translate=function(language, te

有没有办法从不同的页面调用一个AngularJS代码(函数)?我找到了两种方法,但都不能解决问题

第一种方法是使用
$rootScope
。然后,我的函数逻辑将被放入
$rootScope

var sharedFunctions=angular.module('shared',['$rootScope']);

sharedFunctions.run(
    function($rootScope){
       $rootScope.translate=function(language, text){
               for (var i = 0; i < text.translatedTexts.length; i++) {
                   if (text.translatedTexts[i].language == language) {
                       return text.translatedTexts[i];
                   }
               }           
       };
    }
);
第二种方式与第一种方式类似,但区别在于,我的功能的逻辑部分将放在
服务
工厂


原因,为什么我不采用这些解决方案:我必须在每个控制器中编写代码(只有几行代码,调用主逻辑)

最后,我发现了如何在视图之间共享代码

步骤1:创建根模块并配置基本功能

'use strict';
var app=angular.module('rootApp',['ngRoute','appFactories']);

app.run(function($rootScope) {
    $rootScope.translate = function (language, text) {}
    //other functions
});

app.filter('filterName', function() {
   .....
});
//other filters
步骤2:为我的视图创建子模块,并将根模块添加为依赖项

'use strict';
var cardEditApp=angular.module('submoduleApp',['ngFileUpload','rootApp']);

步骤3:在我的视图中,使用带有我的子模块名称的
ng module=“submoduleApp”
。然后我可以使用子模块控制器的功能和根模块的功能。

我通常只使用Angular构建单页应用程序;那么,当你说“不同的页面”时,你是指不同的视图吗?还是不同的控制器?通常,我会将共享功能放入服务中。如果需要在视图中访问它;您可以将完整服务放在$scope中,或者只放在functionFirst中:如果它在根作用域中,那么所有视图都可以访问它,因为所有作用域都继承自根作用域。如果目标是让一个函数可以从视图中访问,为什么不将其设置为筛选器或指令?@JBNizet,我试图从视图中访问
$rootScope.translate
,但没有得到任何结果(
ng bind=“translate(语言,文本)
)。或者必须创建筛选器或指令?即从它们调用
$rootScope
函数?@JeffryHouser,我指的是不同的视图。每个“我的视图”只有一个控制器。您做错了什么,但没有真正的代码,我们不能说。工作示例:
'use strict';
var cardEditApp=angular.module('submoduleApp',['ngFileUpload','rootApp']);