我有一个名为public static string RemoveEmptyUrlParameters(string input)
{
var results = HttpUtility.ParseQueryString(input);
Dictionary<string, string> nonEmpty = new Dictionary<string, string>();
foreach(var k in results.AllKeys)
{
if(!string.IsNullOrWhiteSpace(results[k]))
{
nonEmpty.Add(k, results[k]);
}
}
return string.Join("&", nonEmpty.Select(kvp => $"{kvp.Key}={kvp.Value}"));
}
的函数,它返回一个用于CSS的字符串。
我试图从另一个函数调用它,但不是返回颜色,而是返回正在插入我的CSS的文字函数体。
调用函数
getColor(params)
我的问题是函数将函数体作为文本返回。
coldef = (processedJson) => {
this.customColumns.push(
{
headerName: "Test Set Name", field: "field1", width: 310,
cellStyle: { 'font-size': '12px;' }
});
this.customColumns.push(
{
headerName: "Test Case Name", field: "field2", width: 310,
cellStyle: { 'font-size': '12px;' }
});
for (var i = 0; i < this.columns.length; i++) {
var item = this.columns[i];
this.customColumns.push(
{
headerName: this.columns[i], field: this.columns[i], width: 110,
cellStyle: { 'font-size': '12px;', 'background-color': this.getColor }
});
}
}
接受一个名为this.getColor
的参数,但根据我的理解,此值由angular插入并包含我的JSON对象。
如何让params
只返回我需要的字符串?
答案 0 :(得分:1)
你正在使用它:
'background-color': this.getColor
当你的功能等待参数时(根据你)。这对你来说不是很奇怪吗?
要调用函数,需要像这样编写括号:
'background-color': this.getColor()
在你的情况下,你也应该给它params,这意味着把一些东西放到括号中。
答案 1 :(得分:1)
You need to provide params
to the getColor
function and then actually call it as others suggested. There are two ways how you can get params in the call:
colddef
function:coldef = (processedJson, params) => {
this.customColumns.push(
{
headerName: "Test Set Name", field: "field1", width: 310,
cellStyle: { 'font-size': '12px;' }
});
this.customColumns.push(
{
headerName: "Test Case Name", field: "field2", width: 310,
cellStyle: { 'font-size': '12px;' }
});
for (var i = 0; i < this.columns.length; i++) {
var item = this.columns[i];
this.customColumns.push(
{
headerName: this.columns[i], field: this.columns[i], width: 110,
cellStyle: { 'font-size': '12px;', 'background-color': this.getColor(params) }
});
}
}
this.params = params;
coldef = (processedJson) => {
this.customColumns.push(
{
headerName: "Test Set Name", field: "field1", width: 310,
cellStyle: { 'font-size': '12px;' }
});
this.customColumns.push(
{
headerName: "Test Case Name", field: "field2", width: 310,
cellStyle: { 'font-size': '12px;' }
});
for (var i = 0; i < this.columns.length; i++) {
var item = this.columns[i];
this.customColumns.push(
{
headerName: this.columns[i], field: this.columns[i], width: 110,
cellStyle: { 'font-size': '12px;', 'background-color': this.getColor(this.params) }
});
}
}
答案 2 :(得分:0)
我的问题是,角度中的params
仅在闭包内的范围内。我需要将其传递给getColor
for (var i = 0; i < this.columns.length; i++) {
var item = this.columns[i];
this.customColumns.push(
{ headerName: this.columns[i], field: this.columns[i], width: 110,
cellStyle: (params) => {
return {
'font-size': '12px;', 'background-color': this.getColor(params)
};
}
}
);
}