使用ng-click更改JSON调用

时间:2014-10-19 22:47:57

标签: javascript json angularjs

我遇到以下问题而我找不到解决方案。

这是我目前针对Angular的JS文件:

(function() {

    var app = angular.module("dota2impetus", [ ]);

    app.controller("heroGuide", ["$scope", "$http", function($scope, $http) {

        $scope.heroes = [ ];

        $http.get("js/custom/heroes.json").success(function(data) {
            $scope.heroes = data;
        });

    }]);

})();

JSON:

{
    "cw": [
        {
            "name": "Clockwerk",
            "abbr": "cw",
            "type": "r-str-big",
            "roles": "Initation, Durable"
        }
    ]
}

通过以下调用从JSON获取数据没有问题:

{{ heroes.cw[0].name }}
{{ heroes.cw[0].type }}
{{ heroes.cw[0].roles }}

我需要使用变量,所以我可以用ng-click中的缩写来替换cw。

<div title="Clockwerk" ng-click="selectHero(heroes.cw[0].abbr)"></div>

我正在尝试使用ng-click功能完成此操作:

$scope.selectHero = function(selectedHero) {
    $scope.name = heroes.selectedHero[0].name;
};

现在应该在{{name}}中显示发条技师,但它不起作用。有什么我想念的吗?

基本上我想保留{{heroes.x [0] .name}}并且x应该替换为我在ng-click中从我的函数获得的值(在这个例子中它是“cw”)。

1 个答案:

答案 0 :(得分:1)

使用[]对象表示法,它允许您在大括号之间传递变量

$scope.name = heroes[selectedHero][0].name;