2012-10-28 35 views
45

Otrzymuję błąd z następującego kodu maszynopis:Set window.location z maszynopis

///<reference path='../../../Shared/typescript/jquery.d.ts' /> 
///<reference path='../../../Shared/typescript/jqueryStatic.d.ts' /> 

function accessControls(action: Action) { 
    $('#logoutLink') 
     .click(function() { 
      var $link = $(this); 
      window.location = $link.attr('data-href'); 
     }); 

} 

Dostaję podkreślone czerwoną błąd za:

$link.attr('data-href'); 

Komunikat mówi:

Cannot convert 'string' to 'Location': Type 'String' is missing property 'reload' from type 'Location' 

Czy ktoś wie, co to oznacza?

Odpowiedz

88

jest typu Location, natomiast .attr('data-href') zwraca ciąg znaków, więc należy go przypisać do window.location.href, który jest również typu string. Za to zastąpić następujący wiersz:

window.location = $link.attr('data-href'); 

dla tego jednego:

window.location.href = $link.attr('data-href'); 
11

masz brakowało href:

standardu, do korzystania window.location.href jak window.location jest technicznie obiekt zawierający:

Properties 
hash 
host 
hostname 
href <--- you need this 
pathname (relative to the host) 
port 
protocol 
search 

spróbuj

window.location.href = $link.attr('data-href');