Javascript ng显示嵌套在ng repeat-won';t更新
我在SO和Google上都看过了,看到了一大堆ng show在ng repeat中不起作用的原因(范围问题、绑定问题等),但我不能完全确定我的为什么不起作用。我希望多给我一双眼睛能帮上忙。我对Angular非常陌生,所以希望我的代码能有一些意义 目标:当Javascript ng显示嵌套在ng repeat-won';t更新,javascript,angularjs,ng-repeat,ng-show,Javascript,Angularjs,Ng Repeat,Ng Show,我在SO和Google上都看过了,看到了一大堆ng show在ng repeat中不起作用的原因(范围问题、绑定问题等),但我不能完全确定我的为什么不起作用。我希望多给我一双眼睛能帮上忙。我对Angular非常陌生,所以希望我的代码能有一些意义 目标:当$scope.current_set更改时,可见的lmf OptiStart更改。当前,只有第一个optionset通过决策树:loaded加载,然后当我尝试通过clickbox:clicked加载下一个optionset时,$scope。当前设
$scope.current_set
更改时,可见的lmf OptiStart
更改。当前,只有第一个optionset通过决策树:loaded
加载,然后当我尝试通过clickbox:clicked
加载下一个optionset时,$scope。当前设置更改,但视图不会更新
JS
HTML
显然lmf OptiStart
为每个条目创建了一个独立的作用域。这些子作用域具有到父级的当前\u集的链接,但它们不维护双向绑定。因此,当替换事件处理程序中的current\u set
值时,子作用域不知道current\u set
已更改,它们仍然引用旧值
您可以这样重写事件处理程序:
$scope.current_set.name = Decision_Tree.get_next_optionset().name;
<div ng-controller='OptionsetCtrl as vm'>
<div ng-repeat='set in Optionsets.option_sets'>
<div ng-show="set.name == vm.current_set.name" lmf-optionset="{{set.name}}"></div>
</div>
</div>
或者您可以使用控制器作为结构,如下所示:
$scope.current_set.name = Decision_Tree.get_next_optionset().name;
<div ng-controller='OptionsetCtrl as vm'>
<div ng-repeat='set in Optionsets.option_sets'>
<div ng-show="set.name == vm.current_set.name" lmf-optionset="{{set.name}}"></div>
</div>
</div>