无法将角度 - youtube-embed播放器传递给工厂

时间:2015-04-06 14:02:00

标签: javascript angularjs youtube

我正在使用https://github.com/brandly/angular-youtube-embed

访问播放器(来自文档):

enter image description here

我的代码(另见GitHub):

form.html

<div class="embed-responsive embed-responsive-16by9">
  <youtube-video 
    video-url='formCtrl.skim.url'
    player='formCtrl.player'
    class='embed-responsive-item'>
  </youtube-video>
</div>

player.factory.js

angular.module('skimmableVideosApp')
  .factory('Player', function () {
    return {
      player: {}
    };
  });

form.controller.js

...
this.player = Player.player;
...

setbox.directive.js

function SetboxCtrl(Player) {
  this.set = function() {
    console.log(Player.player);
  };
}

player在几个嵌套指令之间共享。将播放器放在工厂中传递给我似乎更干净,而不是使用隔离范围在嵌套指令之间传递它。这就是我想要做的事情。 (注意:使用隔离范围在嵌套指令之间传递它确实有效,我测试了它。)

当我点击一个按钮时,它会运行上面的set功能,并注销{}。意味着Player.player没有更新到我想要的内容。这是为什么?

修改:当我在Player.player = this.player;this.player = Player.player;代替form.controller.js时,set()功能会记录undefined。这让我觉得在表单控制器运行后正在设置播放器。

enter image description here

enter image description here

我也遇到了undefined is not a function错误,如屏幕截图所示,并且不知道原因。

0 个答案:

没有答案