2014-04-14 22 views
3

我試圖在Windows Phone模擬器上運行我的(Phonegap/Angular)應用程序。 一切工作正常,但不顯示一些圖像。我發現ng-src是麻煩製造者。當im使用src而不是ng-src作爲同一文件夾中的本地圖像時 - 它工作正常。WindowsPhone 8和AngularJs - ng-src無效?

這裏是一些例子:

dispalyed:不顯示

<img ng-click="mediaPlay()" ng-hide=showButton() src="img/go.png" style="float: right"> 

<img ng-src="img/{{poi.poiimage}}" style="display: block; margin: 0 auto"> 

我的應用可以完美運行在Android和iOS。

任何想法如何解決這一問題?

編輯*

好了,現在它越來越怪異O0 ......我的推杆這個 「IMG/{{poi.poiimage}}」,在AP的標籤,這讓我這個路徑:IMG/POI-12 -galgentor-01.png

所以我SRC試了一下:

<img src="img/12-galgentor-01.png" style="display: block; margin: 0 auto"> 

和NG-SRC:

<img ng-src="img/12-galgentor-01.png" style="display: block; margin: 0 auto"> 

兩個爲我工作!

但這...

<img ng-src="img/{{poi.poiimage}}" style="display: block; margin: 0 auto"> 
<img src="img/{{poi.poiimage}}" style="display: block; margin: 0 auto"> 

不起作用。

編輯2 *

在模擬器瀏覽器中測試...工作正常。 -.-

+0

好吧,你能找到'poi.poiimage'的價值嗎?有點像console.log? –

+0

您是否嘗試過'src =「img/{{poi.poiimage}}」(如果它有效,它有點奇怪,而且不應該這樣做,只是爲了測試。) – Ashesh

+0

src =「img/{ {poi.poiimage}}不起作用 並且poi.poiimage的值是正確的 –

回答

15

這不是一個解決方案本身:Angularjs在WP8設備上被破壞。

沒有它不...

我得到它:

這僅僅是一個老IE的和Windows Phone問題。 SrcUrls必須是whitelistet。其他角度會在每個src Url上產生一個「unsafe:」前綴。 它可以是固定的,通過改變角度配置的應用程序象下面這樣:

schreibwerkApp.config(['$routeProvider', '$compileProvider', 
    function ($routeProvider, $compileProvider) { 
     $compileProvider.imgSrcSanitizationWhitelist('img/'); 

     $routeProvider. 
      when('/splash', { 
       templateUrl: 'partials/splash.html' 
      }). 
      when('/terms', { 
       templateUrl: 'partials/terms.html' 
      }). 
      when('/intro', { 
       templateUrl: 'partials/intro.html' 
      }). 
      when('/poi/:stationID', { 
       templateUrl: 'partials/poi.html', 
       controller: 'PoiCtrl' 
      }). 
      when('/directive', { 
       templateUrl: 'partials/directive.html' 
      }). 
      when('/imgview/:stationID/:imgID', { 
       templateUrl: 'partials/imgview.html', 
       controller: 'ImgCtrl' 
      }). 
      otherwise({ 
       redirectTo: '/splash' 
      }); 
}]); 
0

這不是本身的解決方案:Angularjs在WP8設備上被破壞。

我的一位同事正在進行修復。我已經打了他,並會在發佈時發佈更多信息。

- 編輯 - 這裏是在Angular.js板的問題,這似乎表明,在WP8與角度的問題已在CDV得到解決3.4.0

4

Windows手機使用一個不同的內部URL前綴:「X-wmapp」。我已經看到了使用「X-wmapp0」因此爲了安全起見我修改了標準imgSrcSanitizationWhitelist如下:

$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|chrome-extension|x-wmapp.?):|data:image\//); 
0

我想提出一個Windows通用的應用程序與科爾多瓦和AngularJS。我嘗試了以上所有的解決方案和其他人,我在互聯網上找到,但是毫無效果......

然後,我發現,在我的Windows 10(PC)的img src attributesms-appx追加。所以,我在imgSrcSanitizationWhitelist與其他選項添加ms-appx和它現在的工作...

所以,我的代碼看起來像,這一點,

$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|ms-appx|chrome-extension|x-wmapp.?):|data:image\//); 

我會後我測試的應用程序更新這個答案在Windows Phone 8.1和Android中。