我有一个角资源工厂,我想知道是否可以将路径/查询参数传递给工厂函数。请查看代码片段中的注释,以获得更好的线索。
.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;
});发布于 2015-07-20 14:34:15
您可以通过注入$location并使用它的方法解析URL来检测工厂中的URL参数,如下所示:
var sort = $location.search().sort;然后你可以用这个变量来做你的逻辑。
发布于 2015-07-20 14:30:49
因为工厂是一个单实例,所以最好只返回一个接受参数的函数,
像这样:
.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;
});
}https://stackoverflow.com/questions/31519075
复制相似问题