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}}">
我正在使用来自 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}}">