我写了以下指令:
var gameOdds = function(){
return {
template: '{{games["@homeTeam"]}} vs {{games["@awayTeam"]}}',
scope: {
games: '@'
}
};
};
<div game-odds games="{{games}}">
这使用以下JSON数据(下面是json的一部分):
{
@id: "69486",
@homeTeam: "Home Team",
@awayTeam: "Away Team",
otherNormalValues : {
etc: "normal..."
}
}
我知道直接将这些键放入绑定到控制器的HTML中时,选择以@符号开头的这些键的方法有效。但是在我的指令中,我不能以这种
["@field"]
方式选择字段。有谁知道如何做到这一点?
最佳答案
范围上的@
符号将您传递给属性游戏的所有内容转换为文本,并将其传递给您的指令。如果使用=
符号,则可以将范围变量传递到指令中。
对于@
,scope.games
将是一个字符串
使用=
,scope.games
将成为您的json对象
var gameOdds = function(){
return {
template: '{{games["@homeTeam"]}} vs {{games["@awayTeam"]}}',
scope: {
games: '='
}
};
};
<div game-odds games="games">
关于javascript - AngularJS如何从指令访问JSON,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25806876/