2017-04-23 17 views
0

私は現在の日付を現在の日付に設定した最小日付と最大日付を設定して、現在の日付をページに表示しています。現在の日付を表示しますが、関数を呼び出すためにボタンを押すと、日付は未定義になります。なぜ発生するのか分かりませんが、日付ピッカーを使用して日付を選択してボタンをクリックすると、関数が呼び出されると、表示される日付は未定義になります。メソッドが呼び出されたときにCurret日付がアングルで呼び出される

HTML:

<ion-content class="p-l-10 p-r-10 had-header form_slide_page">  
<form ng-submit="vm.addExpense()"> 
    <div class="list"> 
     <label class="item item-input InputFormFull"> 
     <span class="input-label">{{'date_message' | translate}}</span> 
     <input type="date" placeholder="Date" ng-model="vm.expense.date" min="1980-01-01" max="{{vm.today | date:'yyyy-MM-dd'}}"> 
     </label> 

     <label class="item item-input InputFormFull" ng-click="vm.gotoNewCategory()"> 
     <span class="input-label">{{'expensename_message' | translate}}</span> 
     <input placeholder="{{'expensename_message' | translate}}" 
      ng-model="vm.expense.category" ng-readonly="true" ng-change="vm.fillStarted()"> 
     </label> 

     <label class="item item-input InputFormFull"> 
     <span class="input-label">{{'amount_message' | translate}}</span> 
     <input type="number" step=".01" placeholder="{{'amount_message' | translate}}" ng-model="vm.expense.amount_out" ng-change="vm.fillStarted()" 
      next-focus id="field1" ng-focus="vm.scrollMe('field1')" 
     field-to-validate="yes" field-value="{{vm.expense.amount_out}}" field-validation-type="num" field-name="Amount"> 
     </label> 

     <button class="trans-but button" type="submit">{{'save_message' | translate}}</button> 
    </div> 
</form> 

スクリプト:デフォルトの日付が未定義ことになり

function activate() { 
    vm.expense = {}; 
    /*vm.expense.date = new Date();*/ 
    vm.expense.user_id = window.localStorage['user_id']; 
    $log.log('vm.expense', vm.expense); 
    $log.log('expense details', $stateParams.expenseDetails); 
    vm.expense.category = $stateParams.expenseDetails.category; 
    vm.expense.amount_out = $stateParams.expenseDetails.amount_out; 
    vm.expense.date = $stateParams.expenseDetails.date; 
    vm.items = []; // fix me (if needed modify to categories instead of item) 
    screen.orientation.lock('portrait'); 
    DB.getByColVal('category', 'category', ['Expense']).then(function (result) { 
    for (var i = 0; i < result.rows.length; i++) { 
     vm.items.push({display: result.rows.item(i).name}); 
    } 
    $log.log('vm.items: ', vm.items); 
    }, CommonService.handleError); 
    /*$scope.today = new Date().toISOString();*/ 
    //$scope.today = new Date().toISOString().split('T')[0]; 
    vm.today = new Date(); 
    var dd = vm.today.getDate(); 
    var mm = vm.today.getMonth() + 1; 
    var yyyy = vm.today.getFullYear(); 
    if (dd < 10) { 
    dd = '0' + dd; 
    } 
    if (mm < 10) { 
    mm = '0' + mm; 
    } 
    vm.today = yyyy + '-' + mm + '-' + dd; 
    $log.log('CalendarDate', vm.today); 
    localforage.setItem('categoryEnteredDetails', ''); 
} 

機能:

function gotoNewCategory() { 
    vm.catgory = {}; 
    $log.log('Expense Details ', vm.expense); 
    vm.catgory.userdetail = vm.expense; //fix me 
    vm.catgory.userentry = vm.expense; 
    vm.catgory.userdetail.type = 'Expense'; 
    vm.catgory.catergorytype = 'Expense'; 
    localforage.setItem('categoryType', 'Expense'); 
    $state.go('categoryType', {CategoryDetails: vm.catgory}); 
} 

LogCat:

Object {user_id: "60", category: "", amount_out: 85, date: undefined} 
+0

でそれを修正しようとすることができると信じて

が変更されたため、そうvm.expense.amount_out = $stateParams.expenseDetails.amount_outは、未定義にで再割り当てすることができ、あまりにも変化していますか? – Santosh

答えて

0

あなたのgotoNewCategory()には$state.go('categoryType', {CategoryDetails: vm.catgory})があると思われます。

あなたが状態を変更するときに、$stateParams$stateParamsが、私はあなたがjsfiddleを共有することができ$state.go('categoryType', {CategoryDetails: vm.catgory, expenseDetails: vm.expense})

関連する問題