我正在编写一个Video指令来封装HTML5视频标记并提供它周围的基本绑定。
一切都很好,但我对currentposition
属性有疑问。
<my-video currentposition="$ctrl.currentVideoPosition"></my-video>
我允许用户绑定到它以提供一种机制,让他们通过某些控件跳过视频,但也要读取值以找出当前视频的位置。
在指令链接功能中,我会看到此属性进行更改并相应地更新我的视频位置。
$scope.$watch(() => { return $scope.currentposition; }, () => {
var videoElement = $element.find("video");
(videoElement[0] as any).currentTime = $scope.currentposition;
});
只要它仅用于搜索视频而不用于读取当前位置,这样就可以正常工作。一旦我在指令中设置当前位置,它就会触发手表,使其永久地粘在当前位置。
最好的方法是什么?我想到的一些选项,但我不喜欢他们中的任何一个
答案 0 :(得分:1)
您可以使用The email is not valid
和单向绑定。
component
只要在组件外部发生更改,就会调用 module.component('myVideo', {
bindings: {
currentposition: '<'
},
controller: class MyVideoController {
$onChanges(changes) {
if (changes.currentposition) {
var videoElement = $element.find("video");
(videoElement[0] as any).currentTime = this.currentposition;
}
}
}
,这正是您想要的。