簡體   English   中英

相當於AngularJS中“值”屬性的ng-src

[英]Equivalent of ng-src for “Value” attributes in AngularJS

使用AngularJS,我試圖將vimeo鏈接嵌入到我的頁面之一。 但是,根據用戶是來自HTTP還是來自HTTP,我們將相應地更改URL。

 <div class="video">
    <object width="640" height="480">
        <param name="allowfullscreen" value="true" />
        <param name="allowscriptaccess" value="always" />
        <param name="movie" value="{{sslCheck}}//vimeo.com/moogaloop.swf?clip_id=12345&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=666699&amp;fullscreen=1" />
        <embed ng-src="{{sslCheck}}//vimeo.com/moogaloop.swf?clip_id=12345&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=666699&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480">
        </embed>
    </object>
</div>

控制器中的sslCheck將為“ https:”“ http”

問題是ng-src可以正確獲取HTTPs和Google Chrome中HTTP的URL,但是

<param name="movie" value="{{sslCheck}}//vimeo.com/moogaloop.swf?clip_id=12345&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=666699&amp;fullscreen=1" />

不在Google Chrome中運行(盡管它在FF中有效)。 在控制台中,我們可以看到它正在嘗試獲取

https://myDomain.com/%7B%7BmovieURL%7D%7D // vimeo ......

我是否需要為此創建一個指令,或者我可以使用AngularJS中的一些新東西?

謝謝!

實際上,我認為最好的方法就是不使用sslCheck。 瀏覽器應該為您處理此問題,類似於對CDN的處理方式,例如:

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>

因此,您的代碼就是:

<div class="video">
    <object width="640" height="480">
        <param name="allowfullscreen" value="true" />
        <param name="allowscriptaccess" value="always" />
        <param name="movie" value="//vimeo.com/moogaloop.swf?clip_id=12345&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=666699&amp;fullscreen=1" />
        <embed ng-src="//vimeo.com/moogaloop.swf?clip_id=12345&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=666699&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480">
        </embed>
    </object>
</div>

看起來指令似乎是您最好的選擇,但是您可以從本質上創建一個指令param來模擬本機param標簽,如下所示:

module.directive("param", function(){
  return {
   scope: {
     value: "@",
   },
   link: function( scope, element, attrs ){
     element.attr("value", scope.value );
   }
  }
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM