var referrer = $document.referrer;
需要
的值$document.referrer
在变量中。
答案 0 :(得分:3)
$ document 实际上是一个jqLite / jQuery查询结果,因此该属性不存在。如果您想获得推荐人,您可以:
a)直接访问DOM文档:
var referrer = document.referrer;
不推荐这样做,因为您在编写单元测试时会遇到麻烦。
b)引用jqLite / jQuery查询结果中的对象:
var referrer = $document[0].referrer;
我个人也不喜欢这种方法,代码变得丑陋和误导。
c)装饰 $ document :
myApp.config(function($provide){
$provide.decorator('$document', function($delegate){
$delegate.getReferrer = function() {return document.referrer;};
// alternative you can create a property
// Object.defineProperty($delegate, 'referrer', {
// get: function() { return document.referrer; }
// });
return $delegate;
});
});
然后获取推荐人:
var referrer = $document.getReferrer();
//Or if you created a property...
//var referrer = $document.referrer;
我更喜欢这个选项,因为您可以在单元测试中轻松模拟此对象,并且您的代码更容易理解。