javascript - 在 AngularJS 中访问脚本内的范围变量

标签 javascript angularjs angular-ui-router timeline.js

我正在尝试使用 AngularJS 和 TimelineJS3 创建一个简单的应用程序,但我遇到了问题。

我有一个状态(时间线),其中包含与 Controller 关联的部分 View ( timeline.html )。此状态包含从服务器获取数据的 promise ,该数据将存储在 $scope 中。 Controller 内部的变量。问题是我需要在 <script> 中访问这个变量部分 View 文件中的标记。

代码如下:

app.js

    app.config(['$stateProvider', '$urlRouterProvider', 
      function($stateProvider, $urlRouterProvider){
      .state('timeline', {
        url: '/timelines/:id',
        views: {
          'partial-timeline': {
            templateUrl: 'partial/timeline.html',
            controller: 'TimelineController'
          }
        },
        resolve: {
          getOneTimeline: ['$stateParams','timelineServ', function($stateParams, timelineServ) {
            return timelineServ.getTimelineById($stateParams.id);
          }]
        }
      });
    }]);

    app.controller('TimelineController', ['$scope', 'timelineServ', 
      function($scope, timelineServ) {
      $scope.timelineData = timelineServ.indivTimeline;
    }]);

时间线.html

    {{timelineData}}
    <div id="timeline-embed" style="width: 100%; height: 600px"></div>

    <script type="text/javascript">
      window.timeline = new TL.Timeline('timeline-embed', {{timelineData}});
    </script>

来自{{timelineData}}外面的表达式我可以看到该变量具有正确的数据,但是,正如我所说,我无法在 <script> 内使用它标签。

解决这个问题的最佳方法是什么?我对 AngularJS 还很陌生。

提前谢谢您。最好的问候!

最佳答案

您可以在 Controller 或指令中执行此操作:解决 promise 后,将结果保存在全局窗口变量中并在标记中使用它。

app.controller('TimelineController', ['$scope', 'timelineServ', 
  function($scope, timelineServ) {
  window.timelineData = timelineServ.indivTimeline;
}]);

<script type="text/javascript">
  window.timeline = new TL.Timeline('timeline-embed', window.timelineData);
</script>

请记住,您需要在以某种方式解决 Promise 之后初始化 TL.Timeline。

关于javascript - 在 AngularJS 中访问脚本内的范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33376048/

相关文章:

javascript - 在使用 Webpack 进行新部署后处理丢失的动态 block

javascript - ui-router 依赖项仍然出现错误[$injector :unpr] Unknown provider: $stateProvider

javascript - 了解 Document.createElement()

javascript - 在谷歌地图上显示和隐藏标记

javascript - 如何使用 Angular.js 在页面上显示从 JSON 检索的图像

javascript - 当项目包含在数组中时,在 ng-repeat 上添加 Angular 类

javascript - 无法在AngularJS中获取服务中的共享数据

javascript - Angular UI 路由器 - "could not resolve state"带参数

javascript - 有没有办法确定 execCommand ('undo' ) 是否可执行? [JavaScript]

javascript - Firestore 和 Node.js : . set/.update => 将变量作为键传递