2016-01-16 127 views
0

我已經使用離子和AngularJS從一個視圖取值,將數據存儲到SQLite數據庫由簡單的應用程序的更新的數據,然後顯示在另一視圖中的附加價值。我利用離子選項卡來顯示視圖。但是當我添加項目後切換到另一個視圖時,我無法看到增加的值。我需要關閉該應用程序並再次啓動以查看更新的列表。我怎樣才能刷新的圖的離子和AngularJS顯示

有什麼方法可以在我切換到視圖時重新加載視圖?

HTML

<ion-tabs class="tabs-icon-top tabs-positive"> 
    <ion-tab title="Home" icon="ion-home" ui-sref=".home"> 
     <ion-nav-view name="tab-home"> 
     </ion-nav-view> 
    </ion-tab > 
    <ion-tab title="Add Item" icon="ion-plus-round" ui-sref=".AddItem"> 
     <ion-nav-view name="tab-item"></ion-nav-view> 
    </ion-tab> 
    <ion-tab title="View Items" icon="ion-navicon-round" ui-sref=".ViewItems"> 
     <ion-nav-view name="tab-viewitems"></ion-nav-view> 
    </ion-tab> 
    </ion-tabs> 

JS

.state('AddList.ViewItems', { 
     url: '/viewitems', 
     reload:true, 
     views:{ 
     'tab-viewitems':{ 
      templateUrl: 'templates/ViewItems.html', 
      controller: 'ExampleController', 
     } 
     } 
    }) 

我甚至增加了 '重載:真' 的狀態中,但它仍然無法正常工作。 :( 請幫助。在此先感謝:)

控制器

var example=angular.module('starter', ['ionic', 'ngCordova']); 

example.controller("ExampleController", function($scope, $cordovaSQLite, $state, $ionicPopup) 

$scope.enter = function (purchasetype, stonename, size, weight, pieces, color, shape, salesprice) { 
    var query = "INSERT INTO items_list (purchasetype,stonename,size,weight,pieces,color,shape,,salesprice) VALUES (?,?,?,?,?,?,?,?)"; 
    $cordovaSQLite.execute(db, query, [purchasetype, stonename, size, weight, pieces, color, shape, salesprice]).then(function (res) { 
     var alertPopup = $ionicPopup.alert({ 
     title: 'Successful!', 
     template: 'Record entered!' 
     }); 
    }, function (err) { 
     console.log(err); 
     window.alert(err); 
     }); 
    }; 
+0

可以顯示控制器代碼,添加項目到數據庫? – Claies

+0

您應該編輯問題以添加其他代碼。評論框有一個字符限制,不會格式化代碼。 – Claies

回答

1

你可以嘗試插入功能在同一個控制器結束使用$scope.$apply();

另一個解決方案是下文。

製作標籤設置:

<ion-tabs class="tabs-icon-top tabs-positive"> 
    <ion-tab title="Home" icon="ion-home" ng-controller="HomeCtrl" ui-sref=".home"> 
     <ion-nav-view name="tab-home"> 
     </ion-nav-view> 
    </ion-tab > 
    <ion-tab title="Add Item" icon="ion-plus-round" ng-controller="AddItemCtrl" ui-sref=".AddItem"> 
     <ion-nav-view name="tab-item"></ion-nav-view> 
    </ion-tab> 
    <ion-tab title="View Items" icon="ion-navicon-round" ng-controller="ViewItemsCtrl" ui-sref=".ViewItems"> 
     <ion-nav-view name="tab-viewitems"></ion-nav-view> 
    </ion-tab> 
</ion-tabs> 

控制器:

example.controller("AddItemCtrl", function($scope, $cordovaSQLite, $state, $ionicPopup) { 
$scope.enter = function (purchasetype, stonename, size, weight, pieces, color, shape, salesprice) { 
    var query = "INSERT INTO items_list (purchasetype,stonename,size,weight,pieces,color,shape,,salesprice) VALUES (?,?,?,?,?,?,?,?)"; 
    $cordovaSQLite.execute(db, query, [purchasetype, stonename, size, weight, pieces, color, shape, salesprice]).then(function (res) { 
     var alertPopup = $ionicPopup.alert({ 
      title: 'Successful!', 
      template: 'Record entered!' 
     }); 
    }, function (err) { 
     console.log(err); 
     window.alert(err); 
    }); 
}; 
}); 

example.controller("ViewItemsCtrl", function($scope, $cordovaSQLite, $state, $ionicPopup){ 
// get values from DB..! 
}); 
0

可以包括拉刷新功能爲每個景色。

把這個代碼的內容裏面,它會增加拉刷新功能爲您的看法,

<ion-refresher pulling-text="Pull to refresh..." on-refresh="doRefresh()"> 
</ion-refresher> 

確保你的觀點最終結構看起來像這樣,

<ion-view> 
    <ion-content> 
     <ion-refresher pulling-text="Pull to refresh..." on-refresh="doRefresh()"> 
    </ion-refresher> 
    </ion-content> 
</ion-view> 

希望幫助!