有没有办法在Angular中动态创建过滤器?下面我有简单的过滤器,只返回对象数组的某些属性。
module.filter("firstAndLastName", function() {
return function(input) {
return input.map(function(obj) {
return obj.first_name + " " + obj.last_name
});
}
})
module.filter("gradYear", function() {
return function(input) {
return input.map(function(obj) {
return obj.grad_year
});
}
})
如果我想抓取一个对象数组的“email_address”并注入。有没有办法在运行时动态创建它?
module.controller("someController", ["emailAddressFilter",
function(emailAddressFilter) {
// use emailAddressFilter
}
])
我们如何动态创建Angular组件?
答案 0 :(得分:1)
不要忘记,在Javascript中,一切都是在运行时创建的。
而不是:
module.filter("whatEverFilter", function() {
return function(input) {
return input.map(function(obj) {
return obj.first_name + " " + obj.last_name
});
}
});
您可以执行以下操作:
module.filter("whatEverFilter", function() {
//stringArray can be eg : ["first_name","last_name"]
return function(input, stringArray) {
return input.map(function(obj) {
var strReturn = obj[stringArray[0]]
for(var i=1; i<stringArray.length ;i++){
strReturn += " ";
strReturn += obj[stringArray[i]];
}
return strReturn;
});
}
})