我想在点击复选框时执行一个功能,但没有任何反应。
当我将sendMediaToScreen
函数放入链接(scope.sendMediaToScreen()
)时,该函数可以正常工作,因此scope
就可以了。
.directive('uxEmbedVideo', ['$compile','myURL', function( $compile, myURL ) {
return {
restrict: "E",
replace: true,
scope: {
'clientId': '@',
'sendMediaToScreen': '&',
'rule': '=',
'screenActivated' : '='
},
link: function( scope, element, attrs ){
},
templateUrl: myURL.getAppViewsPath() + '/partials/embed-video.html'
};
}])
指令
<ux-embed-video
rule="user.rules"
screen-activated="room.parameters.screenActivated"
send-media-to-screen="roomManager.sendMediaToScreen({ clientId : user.clientId, from: 'producer' })">
</ux-embed-video>
/partials/embed-video.html
<div class="ux-video-admin-controls" ng-if="rule === 'administrator'" >
<input ng-if="screenActivated"
restrict access="administrator"
class="ux-admin-videoToScreen"
type="checkbox"
ng-click="sendMediaToScreen()"
/>
</div>
答案 0 :(得分:0)
问题在于<ux-embed-video>
指令的使用范围。
您将roomManager.sendMediaToScreen({ clientId : user.clientId, from: 'producer' })
的结果绑定到scope.send-media-to-screen
,而不是传递回调。
答案 1 :(得分:0)
我不知道为什么,但是像这样替换模板指令,现在它可以正常工作
指令中的:
删除 - &gt;替换:true,
模板中的
<div class="ux-video-admin-controls" ng-if="rule === 'administrator' && screenActivated" >
<input
restrict access="administrator"
class="ux-admin-videoToScreen"
type="checkbox"
ng-click="sendMediaToScreen()"
/>
</div>
谢谢