【问题标题】:Reusing of functions which is defined between controllers重用控制器之间定义的功能
【发布时间】:2017-07-20 06:29:49
【问题描述】:

我想重用控制器之间定义的代码

.controller('GenericController', ['$scope', '$controller', '$rootScope', '$dialogs', '$state', '$http', '$modal', '$q', '$timeout', 'projectFactory', 'projectPromise', 'phaseFactory', 'buFactory', 'stakeholderGroupFactory', 'ldapFactory', 'genericFactory', 'User',

    function ($scope, $controller, $rootScope, $dialogs, $state, $http, $modal, $q, $timeout, projectFactory, projectPromise, phaseFactory, buFactory, stakeholderGroupFactory, ldapFactory, genericFactory, User) {

      $scope.testing = function() {
        console.log("Hello");
      };
}]);

【问题讨论】:

标签: javascript angularjs inheritance


【解决方案1】:

您可以使用工厂并为函数创建对象以重复使用它。

app.factory("sample",function(){
    return function() {
        console.log("Hello");
      };
})

else 整理多个常用函数

app.factory("commonFunctions",function(){

    commonFunction1(){
       console.log("common func1")
    } 

    commonFunction2(){
       console.log("common func2")
    } 

   return {
         commonFunction1: commonFunction1,
         commonFunction1: commonFunction2
   };
})

【讨论】:

  • 工厂是否会充当控制器通信的镜像
  • 如果您想在控制器之间进行通信,您可以使用服务或本地存储或广播或缓存,这些将存储日期,您可以在其他控制器中使用它。要重用您可以创建工厂的函数,您可以定义要在工厂中返回的内容。
【解决方案2】:

使用$controller 导入这解决了我的问题

【讨论】:

    猜你喜欢
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多