Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度扩展控制器_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 角度扩展控制器

Javascript 角度扩展控制器,javascript,html,angularjs,Javascript,Html,Angularjs,我有两个控制器在我的角度-'table'和'studentTable' 问题是'table'中的$scope无法从'studentTable'中的$scope读取数据 我有两个控制器的原因是我有这么多的表,比如'teacherTable','classRoomTable',等等,它们都使用'table'的函数。这有点像扩展“表”。我有没有办法让它工作得更好 (function () { "use strict"; angular.module("app", []).controller("tab

我有两个控制器在我的角度-'table'和'studentTable'

问题是'table'中的$scope无法从'studentTable'中的$scope读取数据

我有两个控制器的原因是我有这么多的表,比如'teacherTable','classRoomTable',等等,它们都使用'table'的函数。这有点像扩展“表”。我有没有办法让它工作得更好

(function () {
"use strict";
angular.module("app", []).controller("table", ['$scope', function ($scope) {
        return $scope.displayData = function () {
            return $scope.data2=$scope.data;
        };
    }])
    .controller("studentTable", ['$scope', '$http', function ($scope, $http) {
        return $scope.getData = function () {
            $http.post('/api/getUserByUserId/1', {}).success(function (data, status, headers, config) {
                return $scope.data = data;
            }).error(function (data, status, headers, config) {
            });
        }, $scope.getData();


    }])
})
<div data-ng-app="app">
<div data-ng-controller="table">
<div data-ng-controller="studentTable">
    {{data}}
    {{data2}}
    <button ng-click="displayData()">click</button>
</div>

您应该使一个表成为“服务”,并使两个作用域都使用它,因为它的作用域由子控制器继承,所以学生表仍然能够访问“表”中的作用域。服务提供了一个双向通信平台-您应该设置一个供这些控制器使用的表服务
(function () {
"use strict";
angular.module("app", []).controller("table", ['$scope', function ($scope) {
        return $scope.displayData = function () {
            return $scope.data2=$scope.data;
        };
    }])
    .controller("studentTable", ['$scope', '$http', function ($scope, $http) {
        return $scope.getData = function () {
            $http.post('/api/getUserByUserId/1', {}).success(function (data, status, headers, config) {
                return $scope.data = data;
            }).error(function (data, status, headers, config) {
            });
        }, $scope.getData();


    }])
})
<div data-ng-app="app">
<div data-ng-controller="table">
<div data-ng-controller="studentTable">
    {{data}}
    {{data2}}
    <button ng-click="displayData()">click</button>
</div>