angularjs - populating angular directive based on data and tag attribute -
i'm building angular directive in multiple places on same page. i've got few different video tags, , want build flexible enough can place right video in right location.
so, in videocontroller, i've got object holds video details
$scope.videos = {      "main":{ webrtcstream: streamdetails},      "guest":{ webrtcstream: streamdetails},      "other": { webrtcstream: streamdetails} }   then have stream directive
.directive('stream', function(){        return {              restrict: 'e',              controller: 'videocontroller',              template: '<video></video>',              link: function(){                 elm[0].firstchild.src=url.createobjecturl(stream);                 elm[0].firstchild.play();              }        } });   i'd html be
<stream data-name="main"></stream> <stream data-name="guest"></stream> <stream data-name="other"></stream>   what best way select correct stream put correct directive?
you can bind video information 2 way databinding in directive:
app.directive('stream', function(){        return {              restrict: 'e',              template: '<video></video>',              scope:{                name: '='              },              link: function(scope, element, attr){                var video = element.find('video');                video.attr('src', scope.name);                video[0].play();              }        } });   and bind video information this:
<stream data-name="videos.main"></stream> <stream data-name="videos.guest"></stream> <stream data-name="videos.other"></stream>   see this plunker simplified solution.
Comments
Post a Comment