将数据发送到AngularJS中的另一个控制器

将数据发送到AngularJS中的另一个控制器,angularjs,Angularjs,如何将array.length发送到另一个控制器 第一个控制器:代码如下 function uploader_OnAfterAddingFile(item) { var doc = {item: {file: item.file}}; if (doc.item.file.size > 10240) { doc.item.file.sizeShort = (Math.round((doc.item.file.size / 1024 / 1024) * 10

如何将array.length发送到另一个控制器

第一个控制器:代码如下

function uploader_OnAfterAddingFile(item) {

    var doc = {item: {file: item.file}};

    if (doc.item.file.size > 10240) {
        doc.item.file.sizeShort = (Math.round((doc.item.file.size / 1024 / 1024) * 100) / 100) + 'MB';
    } else {
        doc.item.file.sizeShort = (Math.round((doc.item.file.size / 1024) * 100) / 100) + 'KB';
    }
    doc.item.showCancel = true;

    if ($scope.documentStatus) {
        item.formData.push({status: $scope.documentStatus});
    }
    if ($scope.tenderDraftId) {
        item.formData.push({tenderDraftId: $scope.tenderDraftId});
    }

    item.getDoc = function () { return doc; };
    doc.item.getUploadItem = function () { return item; };

    $scope.documents.push(doc);

    //I need send $scope.documents.length
}
在其他控制器上发送到此函数 第二控制器:

它们在一页中

首先,它是一个发布上传文件的组件

第二个控制器它是一个模态窗口,在这里我们有两个文本和元素输入,第一个控制器


我现在只需要它来array.length文件,这些文件是在模式窗口的提交功能中上传的。我尝试使用$rootScope,但它对我没有帮助。

您可以创建一个自定义服务来存储并返回所需的值: 标题为“创建您自己的服务”


或者您可以将routeParams注入第二个控制器:

您可以创建一个自定义服务,用于存储和返回所需的值: 标题为“创建您自己的服务”


或者您可以将routeParams注入第二个控制器:

我认为您真正想做的是
$emit
$broadcast
一个事件。这将允许您编写更少的代码,并且能够轻松地将这些数据传递到应用程序中您希望的任何位置!使用事件监听器,
$on
,也将提供相同的效果

请仔细阅读本文,了解哪个选项最适合您的用例。

TLDR:
我想你真正想做的是
$emit
$broadcast
一个事件。这将允许您编写更少的代码,并且能够轻松地将这些数据传递到应用程序中您希望的任何位置!使用事件监听器,
$on
,也将提供相同的效果

请仔细阅读本文,了解哪个选项最适合您的用例。

TLDR:
前几天我遇到了一个类似的问题。我将使用数据绑定和$ctrl方法。这是一篇非常好的文章,其中有一个示例,您可以在您的用例中复制:希望这有帮助。这种通信形式使得在同一页面上的两个组件之间共享数据变得更加容易。文章举例:

标题组件:输入和输出
.component('headerComponent'{
模板:`
标题组件
列表
桌子
`,
控制器:函数(){
this.setView=函数(视图){
this.view=视图
this.onViewChange({$event:{view:view}})
}
},
绑定:{

视图:“前几天我遇到了一个类似的问题。我将使用数据绑定和$ctrl方法。这是一篇非常好的文章,其中有一个示例,可以与您的用例一起复制:希望这有帮助。这种通信形式使在同一页面上的两个组件之间共享数据变得更加容易。文章示例:

标题组件:输入和输出
.component('headerComponent'{
模板:`
标题组件
列表
桌子
`,
控制器:函数(){
this.setView=函数(视图){
this.view=视图
this.onViewChange({$event:{view:view}})
}
},
绑定:{

视图:'@Makyen感谢您的输入。我是SO新手,我意识到我的错误。我已经用我解释的关于链接的示例更新了我的答案。@Makyen感谢您的输入。我是SO新手,我意识到我的错误。我已经用我解释的关于链接的示例更新了我的答案。
.component('headerComponent', {
   template: `
      <h3>Header component</h3>
      <a ng-class="{'btn-primary': $ctrl.view === 'list'}" ng-click="$ctrl.setView('list')">List</a>
      <a ng-class="{'btn-primary': $ctrl.view === 'table'}" ng-click="$ctrl.setView('table')">Table</a>
   `,
   controller: function( ) {
      this.setView = function(view) {
         this.view = view
         this.onViewChange({$event: {view: view}})
      }
   },
   bindings: {
      view: '<',
      onViewChange: '&'
   }
})
<header-component view="root.view" on-view-change="root.view = $event.view"></header-component>
.component('mainComponent', {
   template: `
      <h4>Main component</h4>
      Main view: {{ $ctrl.view }}
  `,
  bindings: {
     view: '<'
  }
})
<header-component view="root.view" on-view-change="root.view = $event.view"></header-component>
<main-component view="root.view"></main-component>