我创建了一个应该从其父范围继承内容的指令。
我使用了范围{...},但它只接收常规变量。 function
似乎不起作用。
此外,我使用的是Angular 1.4,因此我使用"vm = this;"
代替"$scope"
:
angular
.module('player')
.controller('MediaPlayerController', MediaPlayerController)
.directive('sessionInfo', sessionInfo);
function MediaPlayerController($sce, $timeout) {
var vm = this;
vm.setSourceIndex = setSourceIndex;
vm.playerConfig ={};
vm.session = {
sessionName: 'SAT',
sections: [
{
sectionId: 0,
sectionName: 'SAT-1',
sources: [
{src: $sce.trustAsResourceUrl("videogular.mp4"), type: "video/mp4" }
]
},
{
sectionId: 1,
sectionName: 'SAT-2',
sources: [
{src: $sce.trustAsResourceUrl("big_buck_bunny_720p_h264.mov"), type: 'video/mp4'}
]
}
]
};
function setSourceIndex(index) {
vm.playerConfig.sources = vm.session.sections[index].sources;
};
}
function sessionInfo() {
return {
restrict: 'AE',
scope: {
sections: '=',
setSourceIndex: '&'
},
template: '<li ng-repeat="section in sections"><div ng-click="setSourceIndex({{section.sectionId}})">{{section.sectionName}}</div></li>'
}
}
&#13;
<div ng-controll="MediaPlayerController as meidaPlayer">
<div class="playerSide">
<ul session-info sections="mediaPlayer.session.sections" setSourceIndex="mediaPlayer.setSourceIndex(index)"></ul>
</div>
</div>
&#13;
我错过了什么吗?有人可以帮帮我吗?
答案 0 :(得分:0)
此处有多个问题
setSourceIndex
应使用短划线写成:set-source-index
。我甚至不确定它在这里是否有用,因为你没有从指令中调用它。
您撰写了meidaPlayer
而不是mediaPlayer
您没有为指令设置控制器。然后该控制器应该与指令的属性进行交互。