当前位置: 首页 > 面试题库 >

如何从angularjs中的另一个控制器调用函数?

卫学真
2023-03-14
问题内容

我需要在Angular js中的另一个控制器中调用函数。如何可能的方式请提前帮助我

代码:

app.controller('One', ['$scope',
    function($scope) {
        $scope.parentmethod = function() {
            // task
        }
    }
]);
app.controller('two', ['$scope',
    function($scope) {
        $scope.childmethod = function() {
            // Here i want to call parentmethod of One controller
        }
    }
]);

问题答案:

控制器之间的通信通过$emit+ $on/ $broadcast+ $on方法完成。

因此,在您的情况下,您想在Controller“Two”中调用Controller“One”的方法,执行此操作的正确方法是:

app.controller('One', ['$scope', '$rootScope'
    function($scope) {
        $rootScope.$on("CallParentMethod", function(){
           $scope.parentmethod();
        });

        $scope.parentmethod = function() {
            // task
        }
    }
]);
app.controller('two', ['$scope', '$rootScope'
    function($scope) {
        $scope.childmethod = function() {
            $rootScope.$emit("CallParentMethod", {});
        }
    }
]);

$rootScope.$emit被调用时,您可以发送任何数据作为第二个参数



 类似资料:
  • 问题内容: 我试图通过使用变量在第一控制器中调用第二控制器的方法。这是我的第一个控制器中的一种方法: 我可以设置的值,但是由于某种原因我不能打电话。控制台显示此错误: TypeError:对象#没有方法’getMainCategories’ 有没有一种方法可以调用上述方法? 编辑: 我使用以下方法同时加载两个应用程序。 我肯定可以在这里使用服务,但我想知道是否还有其他选择可以这样做! 问题答案:

  • 问题内容: 我是Angular的新手,正在尝试弄清楚该怎么做… 使用AngularJS,如何注入要在另一个控制器中使用的控制器? 我有以下片段: 执行此操作时,出现错误: 我是否应该尝试在另一个控制器内部使用一个控制器,还是应该将此服务用作服务? 问题答案: 如果您打算掌握已经实例化的另一个组件的控制器,并且如果您遵循的是基于组件/指令的方法,则始终可以遵循某个层次结构的另一个组件中的控制器(一个

  • 我有一个简单的主: MainClassFXGUI.java 和三个fxml文件,其中一个包含其他两个文件 但是我有一个空指针异常,或者如果我移动handleButtonAction函数中对象'controller'实例化的代码,我没有任何错误,但是标签没有改变。 也许我可以在MainClassFXGUI.java中创建一个静态场景和一个静态阶段?但我不知道我该怎么用它们... MainClassF

  • 问题内容: 一个控制器可以使用另一个控制器吗? 例如: 该HTML文档仅在文件中打印由控制器传递的消息。 控制器文件包含以下代码: 它只是打印当前日期; 如果我要添加另一个控制器,它将特定格式的日期返回给,那么该怎么做呢?DI框架似乎与服务有关。 问题答案: 控制器之间有多种通信方式。 最好的一种可能是共享服务: 另一种方法是在范围内发出事件: 在这两种情况下,您都可以与任何指令进行通信。

  • 问题内容: 我单击时有一个下面的按钮,显示一个小的弹出窗口,如通知 我的意图是每隔几秒钟显示一次此弹出窗口,而不用单击按钮,而是从AngularJS控制器显示。 尝试以下解决方案 还包括脚本 使用这样的指令 我看到一个错误“对象没有方法弹出窗口” 问题答案: 伪指令用于DOM操作: 和指令

  • 问题内容: 我想从另一个控制器的函数中加载一个控制器,因为我集成到项目中的库我不想将其加载到控制器中,因为我想保持它的清洁和相关性。 我有默认的控制器,所以我可以加载,这样我怎么能从main函数访问控制器,所以我不必将控制器放在url中。 如果我可以从主控制器功能中加载控制器功能,我仍然愿意使用HMVC。 问题答案: 您无法从CI中的控制器加载控制器-除非您使用HMVC或其他工具。 您应该考虑一下