2013-02-15 24 views
16

benim angularjs denetleyicisi $scope.doc_details gibi bir kapsam var ve ben böyle bir etiketi kullanarak pdf dosyası görüntülemek için kullanmak istiyorum:angularjs ifade <object> etiketi

<object data="{{doc_details.file_url}}" type="application/pdf"></object> 

ama kokan

Failed to load resource: the server responded with a status of 404 (Not Found) 
http://localhost/%7B%7Bdoc_details.file_url%7D%7D 

ve ben sadece <span>{{doc_details.file_url}}</span> kullanarak görüntülemek zaman değeri göstermek: t benim krom konsolunda, tek gördüğüm ise, tarayıcıya yüklendikten olsun. Eğik derler ve açıkçası {{doc_details.file_url}} geçerli bir URL değil önce tarayıcı DOM

<object data="{{doc_details.file_url}}" type="application/pdf"></object> 

görmek olduğunu burada

+1

Ben açısal son verilerle değiştirilir için bir şansı var önce nesne dize değerlendirmektir bahis. –

+0

Bunun için herhangi bir geçici çözüm var mı? –

cevap

20

sorundur.

Direktifler burada arkadaşınız olabilir.

biz yazmak istiyorum ki:

<pdf src='doc_details.file_url'></pdf> 
Biz çok basit bir yönerge oluşturabilir

: biz aslında bize sunulan URL girinceye kadar bu object eleman oluşturulmasını erteler

app.directive('pdf', function() { 
    return { 
     restrict: 'E', 
     link: function(scope, element, attrs) { 
      var url = scope.$eval(attrs.src); 
      element.replaceWith('<object type="application/pdf" data="' + url + '"></object>'); 
     } 
    }; 
}); 

kapsamı (zaten var olduğunu varsayarak) - aksi takdirde kullanılabilir hale gelinceye kadar kapsamda $watchsrc özniteliği istiyorum.

Here this is in a fiddle.

+0

Yani bu yüzden çalışmıyor, Çok teşekkürler –

31

AngularJS 1.1.4 itibaren, data özellik için ng-attr- öneki kullanabilirsiniz:

<object ng-attr-data="{{doc_details.file_url}}" type="application/pdf"></object> 

AngularJS: Interpolation and data-binding üzerinde keyfi özelliklerine bölüm bağlanma için ngAttr bakınız.

+3

Bu IE ile çalışmayacak. IE, yüklendikten sonra veri niteliğini değiştirmenize izin vermez. Erişimin reddedildiğini belirten bir mesaj kutusu almanız olasıdır. Bağlamayı geciktirmek için bir yönerge ile yüklemelisiniz. – user2339814

+0

hala durum böyle mi? Kolayca google "html element angularjs object" gibi görünmüyor, html eleman nesnelerini değil, yazılım nesnelerini geçirme hakkında bir sürü sonuç elde ediyorum. Kodumda tuhaf sorunlar yaşıyorum. Bu ya da bir dokümana bağlantı için herhangi bir güncelleştirilmiş cevap teşekkürler :) –

+0

Bu hala IE 11. – Toddsden

-3

İlk olarak yanıtın bir dizgecik olup olmadığını denetlemeniz gerekir, eğer varsa, 64 tabanına dönüştürün. Ayrıca atamak için setattribute kullanabilirsiniz.

enter image description here

+0

bir ekran görüntüsü almak için daha iyidir. Windows'da bir ekran görüntüsü almak için, Print Screen tuşuna basın ve ardından CTRL + V tuşlarına basarak Paint gibi bir görüntü düzenleme programına yapıştırın. –

İlgili konular