2014-09-11 110 views

回答

1

对象只可以作为引用传递,因为$scope.a被分配了一个原始值,然后改到指定的值$scope.ref$scope.ref2并不反映的$scope.a的变化。

解决此问题,您可以将$scope.a更改为一个对象,该对象持有对您希望更改的值的引用,并将其分配给$scope.ref1$scope.ref2

DEMO

JAVASCRIPT

控制器

//.... 
$scope.a = {value: 12}; 
$scope.ref = $scope.a; 
$scope.ref2 = {copyVale2: $scope.a}; 

指令

//.... 
scope.a.value = newVal; 

HTML

<test value="value" a="a"> 
    <div>ref a : {{ref.value}}</div> 
    <div>ref2 a : {{ref2.copyVale2.value}}</div> 
    <div>a : {{a.value}}</div> 
</test> 
+0

感谢您的回答! – 2014-09-11 02:12:06

+0

恩,我还有一个问题。为什么只有对象可以作为参考传递?为什么不工作不反对? – 2014-09-11 02:17:10

+0

[阅读本文作为参考](http://docstore.mik.ua/orelly/webprog/jscript/ch04_04.htm) – ryeballar 2014-09-11 03:58:20