2015-07-24 3 views
2

Мне интересно, как хранить объект в области. Я не уверен, правильный ли мой синтаксис. Моя цель - настроить привязку данных на этой странице редактирования, а затем сохранить отредактированный объект в области. Но данные не попадут в массивКак вы храните объект в области

$scope.editedRecord = function (editedExpensesInfo) { 
     $scope.tempData.push(editedExpensesInfo) 
    } 
$scope.save = function() { 

    WebApi.editData($scope.tempData); 
}; 

TempData - это мой массив в сервисе.

angular.module('app') 

    .factory('WebApi', function() { 

     var tempData = []; 

     return{ 
     editData: function (data) { 
        return tempData = data; 
       }, 
     } 
    } 

Это моя форма редактирования

<!--Ion-nav-header-bar--> 
    <ion-nav-bar class="bar bar-header bar-positive"> 
     <ion-nav-back-button class="button-clear" ng-click="myGoBack()"> 
      <i class="ion-arrow-left-c"></i> Back 
     </ion-nav-back-button> 
    </ion-nav-bar> 


    <!--ion-nav-side-menu-button--> 
    <!--<ion-nav-buttons side="left"> 

     <button menu-toggle="left" class="button button-icon icon ion-navicon"></button> 

    </ion-nav-buttons>--> 
    <!--Content for Expenses page--> 
    <ion-content has-header="true" padding="true"> 
     <div ng-controller="editExpensesDetailCtrl" ng-model="editedExpensesInfo"> 
      <form name="editExpensesDetailform" ng-submit="editedRecord(editedExpensesInfo)> 
<label class="item item-input "> 
        <b class="input-label">Owner:</b> 
        {{data.owner}} 
       </label> 

       <label class="item item-input"> 
        <b class="input-label">Receipt Date:</b> 
        <!--{{data.modifiedDate | date: "yyyy-MM-dd"}}--> 
        <input style="margin-left: 20%;" ng-model="editedExpensesInfo.newDate" type="date" placeholder="Date" required> 
       </label> 

       <!--<label class="item item-input"> 
        <b class="input-label">Claim Type:</b> 

        {{data.claimType}} 
       </label>--> 

       <label class="item item-input item-select"> 
        <b class="input-label">Claim Type:</b> 
        <select ng-model="editedExpensesInfo.newClaimType" required> 
         <option value="" title="Select Claim" selected disabled>Claim Type</option> 
         <option ng-repeat="claim in claimType" value="{{claim.value}}" 
           ng-selected="{{claim.value== claimType}}"> 
          {{claim.value}} 
         </option> 
        </select> 
       </label> 

       <br /> 
       <!--Remarks Textfield--> 
       <br /> 
       <b>Remarks:</b> 
       <br /> 
       <label> 
        <!--<span style="margin-bottom:auto"> {{data.description}}</span>--> 
        <textarea ng-model="editedExpensesInfo.newDescription" rows="6" cols="50" placeholder="Your remarks..." style="resize:none; border:solid 1px;"></textarea> 
       </label> 
      </form> 
      <br /> 
      <a class="button button-positive" ng-click="save()">Save</a> 
     </div> 
    </ion-content> 
</ion-view> 
+0

Рассмотрите возможность форматирования кода. И сделайте свой вопрос яснее. «Но ничего не происходит». Расплывчато. – Joy

+0

Где вы назвали $ scope.editedRecord? Если вы не назовете это, данные не попадут в массив. – Icycool

+0

@lcycool, у меня только что отредактированный параметр Рекорд в моем контроллере. Как мне позвонить, чтобы он работал? –

ответ

0

Ваша функция контроллера editedRecord не вызывался.

Проверьте документацию ngSubmit.

Вам необходимо добавить кнопку отправки. например:

<input type="submit" id="submit" value="Save Edit" /> 

Надеюсь, это поможет.

Смежные вопросы