如何处理具有特殊字符的查询中使用的值?

时间:2012-03-26 20:30:02

标签: rally

我正在尝试通过迭代进行查询,但我们的迭代名称具有特殊字符(例如“Sprint - 01(2012年3月26日至2012年4月2日)”)。

  

无法从“Sprint - 01(2012年3月26日至2012年4月2日)”解析对象引用“

如果我在它周围添加括号(例如'(Iteration ='+'\“Sprint - 01(2012年3月26日至2012年4月2日)\”)'

  

无法解析:未知运算符“)”

如何使用这些字符正确处理值?

function itemQuery() {
  var queryObject = {
key: 'tasks',
type: 'task',
query: rally.sdk.util.Query.and(['State = "Completed"', 'TaskType = "Development"', 'Iteration = ' + '\"Sprint - 01 (Mar 26, 2012 to Apr 02, 2012)\"']),
fetch: 'FormattedID,Name,Owner,Estimate,Actuals'};

  rallyDataSource.findAll(queryObject, populateTable);
}

1 个答案:

答案 0 :(得分:3)

问题不是特殊字符,而是查询本身。将=运算符用于迭代等对象时,需要使用引用,例如/iteration/1234.js

相反,您可以通过迭代的名称查询:

...
query: rally.sdk.util.Query.and([
    'State = "Completed"', 
    'TaskType = "Development"', 
    'Iteration.Name = ' + '\"Sprint - 01 (Mar 26, 2012 to Apr 02, 2012)\"'
])
...  

不同之处在于迭代后添加了“.Name”。由于名称在引号中,因此特殊字符可以毫无问题地进入Web服务。