当前位置: 代码迷 >> JavaScript >> $ scope。$ watch没有显示变化的值?
  详细解决方案

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

热度:79   发布时间:2023-06-07 18:23:07.0

我正在使用来自angular-bootstrap的手风琴指令 ,并尝试操纵其is-open属性,以便可以将值存储在localStorage中 我从观察属性值开始,但是它始终一直显示true:

控制器:

$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">

谁能指导我做错了什么,还有更好的方法吗? (我确定是)

基元按值传递,也就是说它们被复制,并且您的指令实际上是在更改副本,而不是作用域上的原始变量。 尝试将其包装到对象中:

$scope.accordion = {
    accordionState : true
}
  相关解决方案