$ scope。$ watch没有显示变化的值?

时间:2015-07-16 11:42:00

标签: javascript angularjs twitter-bootstrap angular-bootstrap

我正在使用angular-bootstrap中的 accordion指令并试图操纵其is-open属性,以便我可以将值存储在 localStorage 中。我从观看属性值开始,但它始终只显示为真:

控制器:

$scope.accordionState = true;

$scope.$watch('accordionState',function(newVal,oldVal){
console.log(newVal,oldVal);
} //showing true,true even when accordion is closed

查看:

<accordion-group heading="Main Information" is-open="accordionState">

任何人都可以指导我做错了什么,有更好的方法吗? (我相信是)

1 个答案:

答案 0 :(得分:3)

原语按值传递,换句话说它们被复制,你的指令实际上是在更改副本而不是范围内的原始变量。尝试将其包装到对象中:

$scope.accordion = {
    accordionState : true
}