使用变量时,AngularJS未定义

时间:2015-12-24 18:20:42

标签: javascript html angularjs json

这是我第一次尝试使用AngularJS的测试应用程序,我似乎在简单的事情上遇到了一些错误。

我有我的AngularJS服务,它将JSON返回给我的控制器(已指定'crucify',但这是用户在texbox中输入的内容):

{"crucify":{"id":37635889,"name":"Crucify","profileIconId":984,"summonerLevel":30,"revisionDate":1450980592000}}

现在在我的控制器中,我希望能够访问JSON值' id '和' name '等等。所以我写了这个:

xile.controller('searchController', ['personSearch', '$scope', function (personSearch, $scope) {

$scope.search = function () {

    var summoner = $scope.summoner;

    personSearch.findPlayer(summoner).then(function (data) {
        $scope.answer = data;
    });
}

}]);

因此数据等于上面发布的JSON。在我的HTML中如何从JSON绑定' id '和' name '?我在下面发布了我的HTML,但这似乎不起作用?

<div>Answer: {{answer.id}}</div>
<div>Answer: {{answer.name}}</div>

编辑:

用户将在文本框中输入用户名:

<input type="text" id="txt_searchUser" ng-model="summoner" />

所以Crucify就是一个例子,等于在这个框中输入的内容。

3 个答案:

答案 0 :(得分:1)

&#13;
&#13;
var key=Object.keys(data) //return ["crucify"], object key
$scope.summoner =data[key[0]]; //return object value
&#13;
&#13;
&#13;

答案 1 :(得分:0)

&#13;
&#13;
xile.controller('searchController', ['personSearch', '$scope', function (personSearch, $scope) {

$scope.search = function () {

    var summoner = $scope.summoner;

    personSearch.findPlayer(summoner).then(function (data) {
     
      //first method
        $scope.answer = data.crucify;
      //second method
      $scope.answer = data
    });
}

}]);
&#13;
//first method
<div>Answer: {{answer.id}}</div>
<div>Answer: {{answer.name}}</div>
//second method
<div>Answer: {{answer.crucify.id}}</div>
<div>Answer: {{answer.crucify.name}}</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您是否尝试过将ng-if添加到您的div中,像这样?

<div data-ng-if="answer.id">Answer: {{answer.id}}</div>
<div data-ng-if="answer.name">Answer: {{answer.name}}</div>