recherche

Maison  >  Questions et réponses  >  le corps du texte

angular.js - angularJs的$scope

(1)controller中定义了两个变量

$scope.a="aaaaa";
$scope.b="bbbbb";

(2)同时定义一个对象用来保存

$scope.object={
    arr:[$scope.a,$scope.b]
}

(3)现在动态修改$scope.a$scope.b的值。
但是$scope.object.arr中的值没有变,这是为啥呢?不是应该是实时更新的么?

phpcn_u1582phpcn_u15822739 Il y a quelques jours557

répondre à tous(4)je répondrai

  • 淡淡烟草味

    淡淡烟草味2017-05-15 17:07:33

    Parce que a et b sont tous deux des types de données primitifs, lors de la déclaration de object, ce qui est rempli arr est la chaîne correspondant à a et b lui-même

    Ainsi, lorsque vous modifiez $scope.a et $scope.b plus tard, $scope.object ne change pas avec.

    C'est comme si j'avais deux pommes, je vous en ai donné une, puis j'ai pris une bouchée dans la mienne, parce que les pommes se ressemblent exactement (hypothèse, fausse proposition), donc je m'attends à ce que la pomme dans votre main soit la pareil. Un espace de morsure est apparu.

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-15 17:07:33

    Vous pouvez utiliser $watch

    $scope.$watch('a',function(v){
        $scope.object.arr
    });
    $scope.$watch('b',function(v){
        $scope.object.arr[1] = v;
    });

    répondre
    0
  • 阿神

    阿神2017-05-15 17:07:33

    La valeur par défaut est une traversée peu profonde

    répondre
    0
  • 滿天的星座

    滿天的星座2017-05-15 17:07:33

    $scope.a, $scope.b sont des chaînes et l'affectation équivaut à attribuer directement des chaînes aux tableaux.
    Si vous souhaitez atteindre votre objectif, vous pouvez surveiller a et b. Lorsque a et b changent, attribuez une valeur à l'objet.

    répondre
    0
  • Annulerrépondre