控制器中的更改未反映在视图中

时间:2016-06-28 12:40:21

标签: angularjs angularjs-controller

我有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>

1 个答案:

答案 0 :(得分:0)

我找到的修正是添加了一个超时。这对我有用

 vm.order.Lines = [];
     $timeout(function () {
     vm.order.Lines = args;
    }, 100);