我遇到以下问题而我找不到解决方案。
这是我目前针对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”)。
答案 0 :(得分:1)
使用[]
对象表示法,它允许您在大括号之间传递变量
$scope.name = heroes[selectedHero][0].name;