Javascript Angularjs:模型更改后刷新视图
我正在尝试在添加新记录并更新模型后更新视图。在收入账户详细信息页面上,您可以通过模式中弹出的表单添加新记录。提交表单后,modal closes将新记录添加到db并更新模型 收入账户详情.htmlJavascript Angularjs:模型更改后刷新视图,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我正在尝试在添加新记录并更新模型后更新视图。在收入账户详细信息页面上,您可以通过模式中弹出的表单添加新记录。提交表单后,modal closes将新记录添加到db并更新模型 收入账户详情.html <ion-view view-title="Account Details: {{incomeAccount.accountName}}"> <ion-nav-buttons side="right"> <button class="button
<ion-view view-title="Account Details: {{incomeAccount.accountName}}">
<ion-nav-buttons side="right">
<button class="button button-icon" ng-click="newIncome()">
<i class="ion-android-add icon"></i>
</button>
</ion-nav-buttons>
<ion-content>
<ion-list>
<div class="list card" ng-repeat="record in incomeAccountRecords">
<div class="item item-divider">
<h2>{{record.date}}</h2>
</div>
<div class="item item-body">
<p>${{record.amount}} note: {{record.note}}</p>
</div>
</div>
</ion-list>
</ion-content>
</ion-view>
我遇到的问题是在提交表单之后,模型得到更新(通过console.log()验证),但视图没有更新。如果我刷新页面,它会显示正确的信息
我在状态中禁用了缓存。我尝试在load()函数中添加$scope.$apply,但由于出现错误“$digest已在进行中”
模型更新后是否有方法刷新视图
编辑:我可以通过将$state注入控制器并调用$state.reload()刷新页面来重新加载状态
.controller('IncomeAccountsDetailsCtrl', function($scope, $stateParams, dbService, ModalService, $state) {
$scope.addIncome = function(form){
dbService.addIncomeDb($scope.incomeAccount.id, form.amount.$viewValue, form.date.$viewValue, form.note.$viewValue);
$scope.load();
$scope.closeModal();
$state.reload();
}
试试这个
router.setUpRoutes();
将新添加的记录推送到
$scope.incomeAccountRecords
在“addIncome”中调用“load”函数,该函数正在更新“$scope.incomeAccountRecords”。这将自动更新视图。您应该检查“$scope.closeModal()”调用正在执行的操作。这可能是造成问题的原因 请找到这个答案,它可能对您有用作为
在模式框中完成更改后
$state.transitionTo("Your current state name", "You can pass any parameters", "Forcefully reloading the view ");
请参见下面的示例第一种方法
$state.transitionTo($state.current, {seqId: ''}, { reload: true});
或
第二种方法
$state.reload()
您可以使用$state.transitiono或$state.go(“”,{reload:true})和$state.reload
但如果要在视图更改后重新加载每个控制器
myApp.config(function($ionicConfigProvider) {$ionicConfigProvider.views.maxCache(0);}
更新数据后。。。尝试重新加载
状态
您将如何从控制器中重新加载状态?@Anilkumar这起作用了。我在控制器中添加了$state作为依赖项,然后在addIncome函数的末尾调用$state.reload()。。。请接受并投票@JohnThank you so more:)接受答案模型在控制器中正确更新。由于某些原因,视图没有反映更改。$timeout(函数(){$scope.$apply(函数(){$scope.incomeAccountRecords.push();});},1000)代码>这是closeModal()函数$scope.modal.hide()代码>
myApp.config(function($ionicConfigProvider) {$ionicConfigProvider.views.maxCache(0);}