Javascript 角度1-在父控制器和子控制器之间共享数据-需要建议
我正在开发2个应用程序,它们将简单地显示所有活动事件,然后显示所有已关闭的事件。这两个应用在创建、修改、保存和删除时具有相似的逻辑 因此,我正试图找出在这两个应用程序之间共享CRUD逻辑的最佳方法。我认为最好设置一个父子控制器,如下所示: Common_CRUD_file.js: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(
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逻辑放入其中,然后在需要时注入此服务,然后从控制器调用其函数。