我有一个角度资源工厂,我想知道是否可以将路径/查询参数传递给工厂函数。请查看代码中的注释,以获得更好的线索。
.factory("$Sentiments", function($resource, d3Service, ??URL-Parameters??) {
var d3 = d3Service;
var result = {};
var treemap = d3.layout.treemap()
.size([100, 100])
.value(function (d) {
return d.activity + .35;
})
.sort(function (a, b) {
// < ------------- HERE ---------- >
// I would like to sort based on a query parameter like so:
// if url is like http://localhost/#!/lala?sort=asc
return a.activity - b.activity != 0
? a.activity - b.activity
: a.symbol < b.symbol ? -0.01 : 0.01;
});
答案 0 :(得分:0)
因为工厂是一个单例实例,你最好只返回一个接受参数的函数,
像:
.factory("$Sentiments", function($resource, d3Service) {
var d3 = d3Service;
return function(??URL-Parameters??){
var treemap = d3.layout.treemap()
.size([100, 100])
.value(function (d) {
return d.activity + .35;
})
.sort(function (a, b) {
// < ------------- HERE ---------- >
// I would like to sort based on a query parameter like so:
// if url is like http://localhost/#!/lala?sort=asc
return a.activity - b.activity != 0
? a.activity - b.activity
: a.symbol < b.symbol ? -0.01 : 0.01;
});
}
答案 1 :(得分:0)
您可以通过注入$ location并使用它来解析URL来检测工厂中的URL参数,如下所示:
var sort = $location.search().sort;
然后你可以使用那个变量来做你的逻辑。