在json回归中解决unescaped $

时间:2014-09-29 18:57:04

标签: json angularjs

我找不到这样的东西,但是,我从未见过json以这种方式构建,所以我不知道背后的目的。我也没有办法修改端点。 (可能的原因:java中一些错误地逃避错误的错误。)

这里的json基本上是这样的:

{ "thingName" : { "$" : "name-of-thing" } }

当我看到实际的反应时,那里的名字就在那里。当我通过$ http将它带入并将其添加到范围时,我得到一个空集。这是js:

$scope.getName = function(val) {
    $http.get('http://something/something/names?KeywordText=' + val)
        .success(function(res) {
            $scope.results = res;
    });
};

但是如果我对results.thingName进行ng-repeat,我只会得到一个空的{},对于返回的每个名称都会重复。如何获取内容(物品名称)并绕过返回的单个$?

很多人都提前感谢。

1 个答案:

答案 0 :(得分:1)

Angular忽略以美元符号为前缀的变量。一种可能的解决方案是在将其添加到范围之前重写您的响应(用其他东西替换美元符号)。

更新:尝试以下方式:

var dollarRename = 'dlr';

function renameDollar(obj) {
  for (var k in obj) {
    if (k === '$') {
      obj[dollarRename] = obj.$;
      delete obj.$;
      k = dollarRename;
    }
    if (typeof obj[k] === "object" && obj[k] !== null) {
      renameDollar(obj[k]);
    }
  }
}

.success(function (res) {
  renameDollar(res);
  $scope.results = res;
});