【问题标题】:How to create Child Controller Angular Js如何创建子控制器 Angular Js
【发布时间】:2016-11-10 09:38:51
【问题描述】:
define([], function() {
    function myCtrl($scope,$http) 
    {
        $scope.test = "Course Man";

    }
    myCtrl.$inject=['$scope','$http'];
    return myCtrl;
});

每个控制器都有单独的文件,并在需要时延迟加载。它们在 application.js 中有相应的条目。

现在的问题是:

我需要 2-3 个子控制器都链接到一个父控制器.. 并且都在一个文件中.. 以便可以加载它们..


试过了:

  define([], function() {
        function myCtrl($scope,$http) 
        {
            $scope.test = "Course Man";

        }

       function myCtrl1($scope,$http){};

        myCtrl.$inject=['$scope','$http'];
        return myCtrl;
    });

但是,似乎没有工作。

更新----

父母 --

 define([], function() {
        function myCtrl($scope,$http) 
        {
            $scope.test = "Course Man";

        }
        myCtrl.$inject=['$scope','$http'];
        return myCtrl;
    });

使用另一个控制器:

define([], function() {
    function myCtrl($scope,$http) 
    {
        $scope.test = "Course Man";

    }
    return myCtrl;
});

function myCtrl1($scope,$http){

};

这行得通..不确定他们是否有父子关系...困惑!

【问题讨论】:

  • 你想做什么??你可以为孩子创建单独的控制器!
  • 应用逻辑不允许单独的控制器。需要在同一个父控制器文件中创建一个子控制器。
  • 您可以将控制器嵌套到父级中,但我的问题。请更新更多信息。你想从父控制器重用什么逻辑?
  • “这个控制器内的子控制器”是什么意思
  • 为什么不把“父”作为依赖注入到“子”中?

标签: javascript angularjs dependency-injection angular-controller


【解决方案1】:

你可以走另一条路。

可以扩展一个控制器或使单个控制器成为多个控制器的混合。

module.controller('CtrlChild', ['$scope', '$controller', function ($scope, $controller) {
    // Initialize the super class and extend it.
    angular.extend(this, $controller('CtrlParent', {$scope: $scope}));
    … Additional extensions to create a mixin.
}]);

【讨论】:

  • 你可以使用角度服务来做重复的逻辑,这是推荐的方式
猜你喜欢
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
  • 1970-01-01
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多