2014-11-25 2 views
1

Я пытаюсь изменить встроенный объект с помощью угловой директивы. Мне трудно получить директиву для работы.Угловая директива для модификации embed

Это код объекта.

<object width="250" height="40"> 
    <param name="movie" value="http://grooveshark.com/songWidget.swf"> 
    <param name="wmode" value="window"> 
    <param name="allowScriptAccess" value="always"> 
    <param name="flashvars" value="hostname=cowbell.grooveshark.com&amp;songIDs=26593443&amp;style=metal&amp;p=0"> 
    <embed src="http://grooveshark.com/songWidget.swf" type="application/x-shockwave-flash" width="250"height="40"flashvars="hostname=cowbell.grooveshark.com&amp;songIDs=26593443&amp;style=metal&amp;p=0" allowscriptaccess="always" wmode="window"/> 
</object> 

То, что я пытаюсь сделать, - это иметь идентификаторы songIDs динамически. Я попытался

<object width="250" height="40"> 
     <param name="movie" value="http://grooveshark.com/songWidget.swf"> 
     <param name="wmode" value="window"> 
     <param name="allowScriptAccess" value="always"> 
     <param name="flashvars"value="hostname=cowbell.grooveshark.com&amp;songIDs=" + {{bpmSong[0].$id}} + "&amp;style=metal&amp;p=0"> 
     <embed src="http://grooveshark.com/songWidget.swf" type="application/x-shockwave-flash"width="250"height="40"flashvars="hostname=cowbell.grooveshark.com&amp;songIDs=" + {{bpmSong[0].$id}} + "&amp;style=metal&amp;p=0" allowscriptaccess="always" wmode="window"/> 
    </object> 

basiclly У меня есть номер, который {{bpmSong[0].$id}}, и я пытаюсь использовать, чтобы определить, как SongID.

Я думаю, что директива - это решение, в котором я нуждаюсь, но я не смог получить директиву для работы.

Любая помощь очень ценится.

ОБНОВЛЕНИЕ с попыткой ответить на @JayMc. Я также изменил src, так что я не получил синтаксическую ошибку. Все еще не работает.

index.html

<body ng-app="GrooveApp"> 
<div ng-controller="MainCtrl"> 
    <div class="col-md-12" id="radio"> 
     <button class="btn-lg btn-danger" ng-click="count = count - 1" ng-init="count=0">Previous</button> 
     <flash-widget songID='{{bpmSong[0].$id}}' ></flash-widget> 
     <button class="btn-lg btn-danger" ng-click="count = count + 1">Next</button> 
    </div> 
    <div class="col-md-12"> 
     {{bpmSong[count].$id}} 
    </div> 
</div> 

app.js

angular.module("GrooveApp", ["firebase"]) 
    .controller("MainCtrl", function($scope, $firebase) { 
     var ref = new Firebase("/bpm_playlist"); 
     var sync = $firebase(ref); 
     // create a synchronized array for use in our HTML code 
     $scope.bpmSong = sync.$asArray(); 
    }) 
    .directive('flashWidget', function(){ 

     return { 
      restrict: 'E', 
      scope: { 
       width:'=', 
       height:'=', 
       src: '=', 
       songID: '=' 
      }, 
      template: '<object width="250" height="40">'+ 
      '<param name="movie" value="http://grooveshark.com/songWidget.swf">'+ 
       '<param name="wmode" value="window">'+ 
      '<param name="allowScriptAccess" value="always">'+ 
       '<param name="flashvars"value="hostname=cowbell.grooveshark.com&amp;songIDs="{{songId}}"&amp;style=metal&amp;p=0">'+ 
      '<embed src="http://grooveshark.com/songWidget.swf" type="application/x-shockwave-flash"width="250"height="40"flashvars="hostname=cowbell.grooveshark.com&amp;songIDs="{{songId}}"&amp;style=metal&amp;p=0" allowscriptaccess="always" wmode="window"/>'+ 
       '</object>' 
     } 
    }); 
+0

Вы забыли Concat ваши строки в 'шаблона:' с '+' – Kato

+0

я сделал, и я переехал в ГКЗ и я больше не получаю синтаксическую ошибку, но флеш-плеер говорит, что нет никакой песни – FPcond

ответ

0

Попробуйте директиву, как в следующем, это не тестировалась.

.directive('flashWidget', function(){ 

return { 
    restrict: 'E', 
    scope: { 
     width:'=', 
     height:'=', 
     src: '=', 
     songID: '=' 
    }, 
    template: '<object width="{{width}}" height="{{height}}">'+ 
       '<param name="movie" value="{{src}}">'+ 
       '<param name="wmode" value="window">'+ 
       '<param name="allowScriptAccess" value="always">'+ 
       '<param name="flashvars"value="hostname=cowbell.grooveshark.com&amp;songIDs="{{songId}}"&amp;style=metal&amp;p=0">'+ 
       '<embed src="{{src}}" type="application/x-shockwave-flash"width="{{width}}"height="{{height}}"flashvars="hostname=cowbell.grooveshark.com&amp;songIDs="{{songId}}"&amp;style=metal&amp;p=0" allowscriptaccess="always" wmode="window"/>'+ 
      '</object>' 
    } 
}) 

Затем передать данные в директиву на ваш взгляд:

<flash-widget width='250' height='40' src='http://grooveshark.com/songWidget.swf' songID='{{bpmSong[0].$id}}' ></flash> 
+0

, которая не работает, но я думаю, что это то, что я ищу. Я обновляю свой вопрос с большим количеством кода, чтобы вы могли видеть, что я работаю с – FPcond

+0

post ваши ошибки тоже – JayMc

+0

Ошибка: нечистить SyntaxError: Неожиданная строка в строке шаблона – FPcond