Javascript 角度1-在父控制器和子控制器之间共享数据-需要建议

Javascript 角度1-在父控制器和子控制器之间共享数据-需要建议,javascript,angularjs,Javascript,Angularjs,我正在开发2个应用程序,它们将简单地显示所有活动事件,然后显示所有已关闭的事件。这两个应用在创建、修改、保存和删除时具有相似的逻辑 因此,我正试图找出在这两个应用程序之间共享CRUD逻辑的最佳方法。我认为最好设置一个父子控制器,如下所示: Common_CRUD_file.js: var Common_Application = .module('Common_Application ',[app, app1, app2, app3]) Parent_controller.controller(

我正在开发2个应用程序,它们将简单地显示所有活动事件,然后显示所有已关闭的事件。这两个应用在创建、修改、保存和删除时具有相似的逻辑

因此,我正试图找出在这两个应用程序之间共享CRUD逻辑的最佳方法。我认为最好设置一个父子控制器,如下所示:

Common_CRUD_file.js:

var Common_Application = .module('Common_Application ',[app, app1, app2, app3])
Parent_controller.controller('Parent_controller'), function ($scope, $http, $filter, $timeout) {

//all my CRUD logic goes in here
$scope.edit = function(data) { //edit logic goes here }
$scope.save = function(data) { //save logic goes here }
$scope.cancel = function(data) { //cancel logic goes here }
$scope.delete = function(data) { //delete logic goes here }

}
Child_Show_closed_events.js:

var Common_Application = angular.module('Common_Application');
Child_controller.controller('Child_controller'), function ($scope, $http, $filter, $timeout) {

//All of the app logic goes here    
$scope.get_data = function(data) { //store fetched ajax data in $scope.All_closed_incidents  }

}
HTML文件的快速摘录:

<div ng-app="Common_Application" ng-controller="Parent_controller">
<div ng-controller="Child_controller">
<table directive_for_angular_app_here>
  <tr>
    <td></td>
    <td>Description</td>
    <td>Status</td>
  </tr>
  <tr ng-repeat="incident in All_closed_incidents">
    <td><button type="button" ng-click="edit(incident)">Edit</button></td>
    <td>{{incident.Description}}</td>
    <td>{{incident.Status}}</td>
  </tr>  
</div>
</div>

描述
地位
编辑
{{incident.Description}}
{{事件状态}

因此,此设置可以加载我的表格,但当我单击按钮时,编辑功能dosent似乎完全启动。控制台中也没有错误。当我希望父函数共享其所有作用域时,它似乎忽略了所有父函数。有谁对此有更好的解释吗?

我会放弃您的父/子设置。将父级转换为具有以下功能的服务:

    //all my CRUD logic goes in here
$scope.edit = function(data) { //edit logic goes here }
$scope.save = function(data) { //save logic goes here }
$scope.cancel = function(data) { //cancel logic goes here }
$scope.delete = function(data) { //delete logic goes here }

然后将该服务注入子控制器并调用函数。降低复杂性并增强可重用性。

我将放弃您的父/子设置。将父级转换为具有以下功能的服务:

    //all my CRUD logic goes in here
$scope.edit = function(data) { //edit logic goes here }
$scope.save = function(data) { //save logic goes here }
$scope.cancel = function(data) { //cancel logic goes here }
$scope.delete = function(data) { //delete logic goes here }

然后将该服务注入子控制器并调用函数。降低复杂性并增强可重用性。

我认为最好是创建一个服务,将CRUD逻辑放入其中,然后在需要的地方注入该服务,然后从控制器调用其功能。我认为最好是创建一个服务,将CRUD逻辑放入其中,然后在需要时注入此服务,然后从控制器调用其函数。