我正在测试Angular.js(非常喜欢它),但实际上这可能更像是一个纯粹的问题。
练习场景是我有两场比赛:
我在这里代表第一场比赛:
$scope.match1 = {
p1: "Player A",
p2: "Player B",
winner: "to be determined"
};
当我设置第二场比赛时,我向比赛1获胜者宣布一个带参考的变量,如下:
$scope.match2 = {
p1: $scope.match1.winner,
p2: "Player C",
winner: "tbd"
};
现在我有一个按钮点击,它指定一个赢家匹配1,但是这个值没有通过匹配2(match2.p1值保持“待确定”,尽管它引用了match1.winner,现在更新了)。 / p>
是什么给出的?提前感谢您的帮助或贡献!
答案 0 :(得分:6)
这是因为您的winner
字段不是object
字符串。而你无法获得String的引用。这将是有价值的。
将winner
字段设为object
,因此当您更改winner
的值时,它也会在match2
中更改。
尝试类似下面的内容。
function AppCtrl($scope) {
$scope.match1 = { // p1 vs p2
p1: "Player A",
p2: "Player B",
winner: {name:"to be determined"} //Object
};
$scope.match2 = {
p1: $scope.match1.winner, // an reference to winner of match one
p2: "Player C",
winner: "to be determined"
};
$scope.getWinner = function() { //on click
$scope.match1.winner.name = "Player B";
console.log($scope.match2.p1); //value is updated
};
}