簡體   English   中英

如何在meanjs中存儲ng-repeat數組表單數據?

[英]how do i store ng-repeat array form data in meanjs?

我正在從meanjs.org使用MEANJS。 嘗試為deal存儲ng-repeat數組數據,該deal dealtypedeal dealprice作為其下的數組,但無法執行。 我在創建表單中為ng-repeat輸入標簽設置了addFields,但它不存儲數據。 這是我的代碼。

food.server.model.js

 var FoodSchema = new Schema({
 created: {
   type: Date,
   default: Date.now
 },
name: {
  type: String,
  default: '',
  required: 'Please fill Food name',
  trim: true
},
deal: [{
  dealtype: {
      type: String,
      default: '',
      trim: true
   },
 dealprice: {
    type: String,
    default: '',
    trim: true
  }
 }],
 user: {
  type: Schema.ObjectId,
  ref: 'User'
  }
});

foods.client.controller.js

// initial array setup

var deal = [ { dealtype: '',dealprice: '' }, {dealtype: '',dealprice: '' } ];

 $scope.food = {};
    $scope.food.deal = deal;
    $scope.addItem = function() {
        $scope.food.deal.push({
            dealtype: '',
            dealprice: ''
        });
    };

 // Create new Food
 $scope.create = function (isValid) {
   $scope.error = null;
    if (!isValid) {
    $scope.$broadcast('show-errors-check-validity', 'foodForm');
    return false;
  }

  // Create new Food object
  var food = new Foods({
    name: this.name,
    deal:[{
            dealtype: this.dealtype,
            dealprice: this.dealprice,
          }],
  });

  // Redirect after save
  food.$save(function (response) {
    $location.path('foods/' + response._id);

    // Clear form fields
    $scope.name = '';
    $scope.dealtype = '';
    $scope.dealprice = '';
  }, function (errorResponse) {
    $scope.error = errorResponse.data.message;
  });
};

創建-food.client.view.html

<form name="foodForm" class="form-horizontal" ng-submit="create(foodForm.$valid)" novalidate>
  <fieldset>
    <div class="col-md-12">
        <md-input-container flex="">
        <label >Food Name</label>
        <input type="text" data-ng-model="name" id="name"  required>
    </md-input-container>
</div>
<div ng-repeat="de in food.deal">
   <div class="col-md-6">
       <md-input-container class="">
          <label class="" for="dealtype">Dealtype</label>
          <input type="text" data-ng-model="de.dealtype" id="dealtype"   >
       </md-input-container>
   </div>
   <div class="col-md-6">
      <md-input-container class="">
         <label class="" for="dealprice">Dealprice</label>
         <input type="text" data-ng-model="de.dealprice" id="dealprice"   >
      </md-input-container>
    </div>
</div>
<a href ng:click="addItem()" class="btn btn-small">add item</a>
<button  class="md-primary md-raised width-100 md-whiteframe-5dp" type="submit">Create  Food</button>

<div ng-show="error" class="text-danger">
    <strong ng-bind="error"></strong>
</div>
</fieldset>
</form>

嘗試在沒有嵌入式陣列的情況下設置架構,並且不進行任何發送。 如果可行,則可能需要使用子文檔來設置架構。

如果要將交易屬性設置為子文檔,則需要遵循此步驟 您將單獨定義交易方案。 像這樣:

var dealSchema = new Schema({ {
  dealtype: {
    type: String,
    default: '',
    trim: true
  },
  dealprice: {
    type: String,
    default: '',
    trim: true
  }
} });

var FoodSchema = new Schema({
  ...,
  deal: [dealSchema]
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM