簡體   English   中英

變量引用對象的值,但在對象出現時不會更新

[英]variable references an object's value, but is not updated when the object is

我正在測試Angular.js(非常喜歡它),但事實上這可能更像是一個純粹的問題。

練習場景是我有兩場比賽:

  • 玩家A與玩家B
  • 第一場比賽(球員A或B)與球員C的勝者

我在這里代表第一場比賽:

$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,現在更新)。

是什么賦予了? 在此先感謝您的幫助或貢獻!

這是一個小提琴: http//jsfiddle.net/legolandbridge/mAjX5/2/

這是因為您的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
    };


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM