我正在为我的应用程序制作一个通知横幅,但是当我在收听一个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>
这是指令和控制器的完整声明:
这是模板:
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);
}
}
}
谢谢!