在angular控制器之外访问typescript全局变量

时间:2015-07-31 10:50:13

标签: angularjs typescript

我在main.ts文件中有一个名为rowTag的全局变量作为Tag[]实体的数组。

我有一个名为TagMeController.ts文件的角度控制器

这是TagMeController

的构造函数
constructor($scope, $rootScope) {
            $scope.CloseMe = this.CloseMe;
            $scope.rowTags = rowTag;//rowTag global variable
            $scope.colTags = colTag;//colTag global variable
            $scope.UpdateMe = this.UpdateMe;
        }

因此,当我从同一个控制器更新rowTag对象时,它会更新UI上的相应元素,但是当我从另一个.ts(main.ts)文件更新相同的对象时,事情没有被反映出来。

关于如何使变量可观察的任何想法?

1 个答案:

答案 0 :(得分:3)

  

关于如何使变量可观察的任何想法

创建角度服务以包含该信息,

class Tags {
    rowTags = [] 
    colTags = []
}

然后使用该服务:

constructor($scope, $rootScope, tags: Tags) {
    $scope.CloseMe = this.CloseMe;
    $scope.tags = tags; // Tags service containing `rowTag` and `colTag`
    $scope.UpdateMe = this.UpdateMe;
}

以下是使用TypeScript创建角度服务的视频:https://www.youtube.com/watch?v=Yis8m3BdnEM