我知道有类似的问题已经被问到,但它们并不适用于我的情况.我在控制器中定义了一些变量,并在面板中显示它们的值.我的控制器与部件相关如下:
var vm = this;
vm.wellId = "id";
vm.wellSeq = "sequence";
vm.onWellSelected = onWellSelected;
...
function onWellSelected(wells) {
...
vm.wellId = wells[0]["id"];
vm.wellSeq = wells[0]["sequence"];
...
}
Run Code Online (Sandbox Code Playgroud)
我的html组件是这样的:
<div plate id="plate-layout"
on-well-selected="vm.onWellSelected(wells)">
</div>
<ul class="list-group" style="width: 400px; overflow: auto">
<li class="list-group-item">{{vm.wellId}}</li>
<li class="list-group-item">{{vm.wellSeq}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我检查了源并在函数onWellSelected中设置了断点:vm.wellId和vm.wellSeq确实在操作后更改为正确的值,但是无法显示新值.盘子的定义涉及很多其他js文件,所以这里不容易显示,但是板块本身是一个指令,有两个服务的支持.可能是什么原因?谢谢!
对不起,我是Angular的新手,所以花了一段时间才发现这个:
$scope.$apply();
Run Code Online (Sandbox Code Playgroud)
将其放在修改部分之后,然后在页面上更新值.
编辑:
只是一个后续:如果使用这个:$ scope.$ apply()或$ scope.$ digest(),那么我会得到这个错误:$ digest已经在进行中; 但如果我删除它,该值将不会更新.所以我在这里引用这篇文章:防止错误,现在它正常工作没有错误消息.希望这可以帮助那些面临同样问题的人.
| 归档时间: |
|
| 查看次数: |
3197 次 |
| 最近记录: |