【问题标题】:AngularJS assigning data to variable from functionAngularJS将数据分配给函数中的变量
【发布时间】:2019-03-10 12:05:35
【问题描述】:

我正在将我的数据从一个控制器广播到另一个控制器。 在控制器中定义广播,

$rootScope.$broadcast 'dataStored', { context: array }

另一个控制器是我的 AngularJS NVD3 图形控制器 我正在使用 $on 接收数据

$scope.data = []
tempStore = (event, data) ->
  array = _(data.context)
          .groupBy('name')
          .map((values,key) -> ({key,values}))
          .value()
  console.log array
$rootScope.$on 'dataStored', tempStore
console.log tempStore

我的“console.log 数组”正在给我输出。但是我现在如何将数组数据分配给 $scope.data。我希望 $scope.data 在数组变量中有数据。最后一行代码“console.log tempStore”给我输出为 tempStore 中定义的代码 我正在使用 angularJS、coffeescript。

我将不胜感激。

【问题讨论】:

    标签: angularjs coffeescript


    【解决方案1】:

    您只需将数组分配给数据

    $scope.data = array
    
    $scope.data = []
    tempStore = (event, data) => {
      var array = _(data.context)
          .groupBy('name')
          .map((values,key) => ({key,values}))
          .value()
      $scope.data = array
      console.log( $scope.data)
    }
    $rootScope.$on('dataStored', tempStore)
    console.log tempStore
    

    【讨论】:

    • 感谢您回复@sridhar ...但这不起作用,因为 $scope.data 仍然是空的
    • 这应该可以,我只是更改了控制台语句。你能检查一次吗
    • 我试过 @sridhar ... 在 tempStore 的 console.log 中给我输出到 $scope.data。但我想在 tempStore 函数之外使用数组数据。就像控制器中的全局一样。
    • $scope.data 将被更新,仅在事件被调用之后。在调用事件之前它将为空。它现在也将在全球范围内可用,但在调用 datastored 事件时,您的全局代码将已被执行
    • 通过调用 tempStore 中的函数来执行你想要的代码
    猜你喜欢
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多