La directiva angular para mostrar Flash a través de la etiqueta <object> hace que Flash intente cargar {{expresión}}
Tengo una directiva AngularJS:
myApp.directive('movie', function(){
return {
restrict: 'E',
replace: true,
scope: { product:'=', codebase: '@' },
template: '<object style="width:550px;height:320px;" name="movie" id="movie" codebase="{{codebase}}"' +
' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" tabindex="-1">' +
'<param value="{{product.flashURL}}" name="movie">' +
'<param value="true" name="play">' +
'<param value="true" name="menu">' +
'<param value="transparent" name="wmode">' +
'<param value="noscale" name="scale">' +
'<embed wmode="transparent" style="width:550px;height:320px;" src="{{product.flashURL}}" scale="noscale"' +
' pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" name="movieEmbed" menu="true" id="movieEmbed">' +
'</object>'
};});
Se usa así:
<movie product="productInScope" codebase="http://flashcodebase..." />
Hice esta directiva para solucionar el problema que tenía al simplemente incluir este HTML en una vista, que es la siguiente: en el instante en que se representa la etiqueta del objeto, Flash intenta cargar una película en la URL "{{product.flashURL}} ". Eso obviamente falla, y para cuando Angular consigue interpolar la expresión, ya es demasiado tarde.
Desafortunadamente, reestructurarlo como una directiva no ayudó al problema. Curiosamente, la expresión {{codebase}} parece funcionar siempre; ¿Quizás se evalúa primero, lo que hace que Flash se cargue e intente recuperar la URL?
¿Cómo reescribiría esta directiva (o usaría un enfoque más simple) para que la etiqueta de objeto no se cree hasta que el flashURL esté disponible?