我创建了一个指令,它应该从它的父作用域继承一些东西。
我使用了作用域{...},但它只接收常规变量。function%s似乎不起作用。
另外,我使用的是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>'
}
}<div ng-controll="MediaPlayerController as meidaPlayer">
<div class="playerSide">
<ul session-info sections="mediaPlayer.session.sections" setSourceIndex="mediaPlayer.setSourceIndex(index)"></ul>
</div>
</div>
我是不是遗漏了什么?有人能帮帮我吗?
发布于 2016-04-10 19:35:03
这里有多个问题
setSourceIndex应该写成短划线:set-source-index。我甚至不确定它在这里有什么用处,因为你没有从指令中调用它,你写的是meidaPlayer而不是mediaPlayerhttps://stackoverflow.com/questions/36528895
复制相似问题