Angular 无法读取指令中的 属性

Angular can not read property in a directive

我正在使用来自 https://github.com/mrgamer/angular-media-player 的 angular-media-player 模块 而我的html写成如下

<audio media-player="audioControl" data-playlist="list" a="{{audioControl.ended}}">

当 属性 audioControl.ended 更改时,我可以读取属性 a。但是在我的控制器中我尝试

console.log($scope.audioControl.ended);

失败了。

但令人困惑的是我可以像这样在控制器中使用它的方法

$scope.audioControl.play();

有人知道怎么回事吗?

我好像知道怎么回事了。 当我使用

setTimeout(function(){
    console.log($scope.audioControl.ended);
}, 3000);

那么它就不会抛出错误了。当我尝试使用该指令时,它似乎还没有准备好,所以,是否有任何方法可以检测该指令是否已准备就绪?

您可以使用 ng-if 作为指令。就像

<audio ng-if="audioControl.ended" media-player="audioControl" data-playlist="list" a="{{audioControl.ended}}">