Angular JS - $ scope。$ appy - 即时更新选择带有Angular的选项HTML

时间:2018-02-07 06:38:07

标签: javascript angularjs

我有一个绘图项目。当我添加一个新图表时,变量" data"正在更新。

一开始,"数据"变量为空。

var data = {
  "nodes": [],
  "edges": []
};

然后,它通过添加新的边或节点来改变。

var data = {
  "nodes": [{id:5,label:"a"}],
  "edges": []
};
  

我想制作一个"即时更新select->选项"。如果添加新边缘或   节点应该更新选项列表。

创建html页面时,列表为空,但是在更新变量后,list仍为空。我检查过$scope.$apply,但是找不到我的问题的解决方案。

我期待着你的帮助。非常感谢你。

<select multiple="" class="form-control" id="node-equivalent">
  <option ng-repeat="n in data.nodes">{{n.label}}</option>
</select> 

2 个答案:

答案 0 :(得分:0)

data不是$scope变量。因此双向绑定不起作用。请参阅Angular文档以获得更好的理解。

应该是:

$scope.data = {
"nodes": [{id:5,label:"a"}],
"edges": []
};

答案 1 :(得分:0)

您可以通过将范围注入控制器来调用$scope.$apply(),以便再次运行整个摘要周期并更新变量。

   `this` will also work in your case.

检查出来

  var vm = this;
            vm.data = {
              "nodes": [],
              "edges": []
                      };

            $timeout(function () {
                vm.data = {
  "nodes": [{id:5,label:"a"}],
  "edges": []
}
            }, 2000);

        })

我已在每timeout

添加2secs fn进行刷新