suchen

Heim  >  Fragen und Antworten  >  Hauptteil

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_u15822833 Tage vor602

Antworte allen(4)Ich werde antworten

  • 淡淡烟草味

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

    因为ab都是原始数据类型,在声明object的时候,向arr里填入的就是ab对应的字符串本身

    所以当你后面再去修改$scope.a$scope.b时,$scope.object并没跟着一起变。

    这就好比,我有两个苹果,给了你一个,然后我把我自己的咬了一口,因为苹果长得一模一样(假设,是伪命题),于是我期待你手里的苹果也出现了一个被咬的豁口。

    Antwort
    0
  • 曾经蜡笔没有小新

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

    你可以使用 $watch

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

    Antwort
    0
  • 阿神

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

    默认是浅遍历

    Antwort
    0
  • 滿天的星座

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

    $scope.a,$scope.b为字符串,赋值相当于直接赋值字符串给数组。
    如果想达到你的目的,可以监听一下a,b,当a,b发生变化时,再给object赋值。

    Antwort
    0
  • StornierenAntwort