在根镜事件中未更新角度范围

时间:2017-04-06 14:33:39

标签: javascript angularjs angularjs-scope

我正在为我的应用程序制作一个通知横幅,但是当我在收听一个rootcope事件后更新时,我的数据不会在dom中刷新。

我试图将该代码放入$ timeout或使用$ digest甚至$ apply,但它不起作用。

这是我在控制器中更新viewmodel的地方:

function notificationBannerDirective() {
    return {
        restrict        : 'E',
        replace         : true,
        templateUrl     : 'templates/directives/notificationBanner.html',
        scope           : {},
        controller      : notificationBannerController,
        controllerAs    : 'vm',
        bindToController: true
    };
}

这里是指令声明:

<div
class="notification-banner {{vm.enabled ? 'show' : ''}} {{vm.size || vm.ConstNotifications.sizes.MEDIUM}} {{vm.level || vm.ConstNotifications.levels.MINOR}}">
<p class="message">{{vm.message}}</p>
<p class="action" ng-if="vm.action" ng-click="vm.action.callback()">{{vm.action.message}}</p>
<a class="button button-icon icon ion-close" ng-if="vm.canClose" ng-click=""></a>
</div>

这是指令和控制器的完整声明:

https://pastebin.com/QpgLvhR3

这是模板:

private void calcBudget(List<ListInfo> data, int fromIndex, int endIndex, int sumInStack, float target) {

    AppUtils.log(TAG, "Begining: " + fromIndex);
    if (sumInStack == target) {
      AppUtils.log(TAG, "TotalSize: " + stackInfo.size());
    }

    for (int currentIndex = fromIndex; currentIndex < endIndex; currentIndex++) {
      ListInfo info = data.get(currentIndex);
      Price currentPrice = info.getPrices().get(0);
      if (sumInStack + currentPrice.getPrice() <= target) {

        stackInfo.add(data.get(currentIndex));
        sumInStack += currentPrice.getPrice();

        calcBudget(data, currentIndex+1, endIndex, sumInStack, target);
        Price toPopPrice = data.get(0).getPrices().get(0);
        sumInStack -= toPopPrice.getPrice();
        data.remove(0);
      }
    }
  }

谢谢!

0 个答案:

没有答案