在我的html中,我有一个数组。这是因为我用Django模板呈现它,而且很方便。
<script type="text/javascript"> foo = ["Python", "Marketing", "Start-ups", "business"]
</script>在具有指令代码的directive.js中,我有:
$scope.foo = foo; // so it takes the data and the global value from the template
$scope.foo.push('wrong'); // let's add a value
$scope.reset = function(){
$scope.foo = foo; // rebind with the global value
console.log(foo)
}当我记录foo时,我得到了["Python", "Marketing", "Start-ups", "business", "wrong"]。
现在,我尝试了相同的代码,省略了$scope.foo = foo;。当我使用reset()时,数组是正确的数组["Python", "Marketing", "Start-ups", "business"]。
那是什么巫术?
发布于 2013-11-06 00:19:30
我还是不太明白你的问题,但我要试一试。
如果你这样做了
$scope.foo = foo;您不是在复制foo并将其分配给$作用域. foo --$作用域.foo现在引用foo对象。因此,如果将项添加到foo,也将向$scope.foo添加项,反之亦然。
请注意,这适用于对象,而不是原语(字符串、ints等)。
这就是javascript的工作方式--它与angularjs本身无关。
https://stackoverflow.com/questions/19801252
复制相似问题