2012-10-28 50 views
45

Tôi nhận được một lỗi với mã nguyên cảo sau:Set window.location với nguyên cảo

///<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'); 
     }); 

} 

Tôi nhận được một lỗi màu đỏ gạch chân sau:

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

Thông điệp nói:

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

Có ai biết điều này có nghĩa là gì không?

Trả lời

88

window.location thuộc loại Location trong khi .attr('data-href') trả về một chuỗi, vì vậy bạn phải gán nó cho window.location.href cũng thuộc loại chuỗi đó. Cho rằng thay thế dòng sau của bạn:

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

cho một này:

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

bạn đã bỏ lỡ href: Chuẩn

, Để sử dụng window.location.href như window.location là về mặt kỹ thuật một đối tượng bao gồm:

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

thử

window.location.href = $link.attr('data-href'); 
Các vấn đề liên quan