javascript - 从 Angular js中的另一个ng-app调用方法

标签 javascript angularjs angularjs-directive angularjs-scope

我在同一页面上有 2 个 ng-app block 。一种用于列出项目,另一种用于插入。我想在完成插入后调用列表函数。 我尝试过一些事情,但没有成功。 我找到了一些关于在同一个 ng-app 上调用函数的文档,但我需要从另一个 ng-app 调用函数。

这是我的代码,请帮忙。

<body>
<div id="UserControllerDiv" ng-app="UserTableApp" ng-controller="UsersController" class="form-group">
    <br /><br />
    <p>Search : <input type="text" ng-model="search" /></p>
    <table class="table table-hover">
        <thead>
            <tr>
                <th>First Name</th>
                <th>Middle Name</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="u in users | filter:search">
                <td>{{ u.FirstName }} </td>
                <td>{{ u.MiddleName }} </td>
            </tr>
        </tbody>
    </table>
</div>
<br />
<div id="UserFormDiv" ng-app="UserFormApp" ng-controller="UserFormCtr" class="form-group">
    <table class="form-group">
        <tr>
            <td>First Name</td>
            <td> : </td>
            <td><input type="text" ng-model="FirstName" class="" /> </td>
        </tr>
        <tr>
            <td>Middle Name</td>
            <td> : </td>
            <td><input type="text" ng-model="MiddleName" /> </td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td>
                <button ng-click="submit()">Save</button>
            </td>
        </tr>
    </table>
</div>
<script>
    var userTableApp = angular.module("UserTableApp", []);
    userTableApp.controller("UsersController",
        function UsersController($scope, $http) {
            $http.get("http://localhost:10160/UserService/Users")
            .success(function (response) { $scope.users = response; });
        });
    var userFormApp = angular.module("UserFormApp", []);
    userFormApp.controller("UserFormCtr",
        function UserFormCtr($scope, $http) {
            $scope.submit = function () {
                var dataObj = {
                    FirstName: $scope.FirstName,
                    MiddleName: $scope.MiddleName
                };
                var res = $http.post("http://localhost:10160/UserService/AddUser", dataObj);
                res.success(function (data, status, headers, config) {

                    /****** Here I want to call the UsersController function of UserTableApp  ************/
                    /* I tried the code below but it did not work */
                    var scope = angular.element(document.getElementById("UserControllerDiv")).scope();
                    scope.$apply(function () { scope.UsersController($scope, $http); });
                    /*************************************************************************************/

                });
                res.error(function (data, status, headers, config) {
                    alert("failure message: " + JSON.stringify({ data: data }));
                });
            }
        });
    angular.bootstrap(document.getElementById("UserFormDiv"), ['UserFormApp']);
</script>

感谢您的帮助...

最佳答案

以下是从其他 Controller 应用程序调用函数的方法。

 var scope = angular.element(document.getElementById("UserControllerDiv")).scope();
                scope.yourfunctionName();

流程将转到提到的函数。 为了确保您可以在控制台的范围对象中检查您的方法是否存在。 你说得几乎是对的。

关于javascript - 从 Angular js中的另一个ng-app调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28786244/

相关文章:

javascript - Angularjs 1.x Controller 在指令中没有响应

javascript - Angularjs data from json, onclick , 右边显示相应的数据

angularjs - 两个指令共享同一个 Controller

javascript - Joomla 模块中的提交按钮不起作用

php - 通过按钮更新金额值

javascript - Backbone.View 事件只触发一次

javascript - 指令之间的交互

javascript - 如何合并字符串?

javascript - 如何使用 jQuery 在全屏模式下打开新页面而不刷新

javascript - AngularJS Controller 的问题