我有2个控制器,基于一个控制器中的操作,我需要更新另一个控制器中的数据。 这是我的代码
控制器1
$rootScope.$broadcast('PackageIns', $scope.pkgtoLoad);
控制器2
$rootScope.$on('PackageIns', function (event, args) {
vm.order.Lines = args;
console.log(vm.order.Lines)
})
vm.order.Lines
是一个对象数组。问题是数组vm.order.Lines
正在更新,但视图没有反映出来。
但是如果我把代码放在vm.order.Lines= [];
这样的代码中,那么视图将被反映出来并且视图将清除所有行。
修改
查看
<tbody tp-order-line ng-repeat="orderLine in vm.order.Lines track by vm.itemTracker(Line)" lineitem="Line">
我使用指令进行渲染。 指令内使用的模板是
<td>{{vm.orderLine.Name}}</td>
<td>{{vm.orderLine.Description}}</td>
答案 0 :(得分:0)
我找到的修正是添加了一个超时。这对我有用
vm.order.Lines = [];
$timeout(function () {
vm.order.Lines = args;
}, 100);