Javascript Angularjs:模型更改后刷新视图

Javascript 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

我正在尝试在添加新记录并更新模型后更新视图。在收入账户详细信息页面上,您可以通过模式中弹出的表单添加新记录。提交表单后,modal closes将新记录添加到db并更新模型

收入账户详情.html

<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);}