2017-07-26 75 views
0

我是新的平均堆棧,我正在構建電話簿系統。每個人可以有多個電話號碼,我可以在下面將它保存到模型中。我能救它,當我使用郵遞員如下:如何使用角度保存陣列

郵差

key:phones[1][type] 
value:"mobile" 

key:phones[1][number] 
value:"123-123-1234" 

key:phones[2][type] 
value:"home" 

key:phones[2][number] 
value:"987-987-9876" 

架構

const PhonesSchema = new Schema({ 
    type: { type: String}, 
    number: { type: String} 
}); 
const PersonSchema = new Schema({ 
    first_name: { type: String}, 
    last_name: { type: String}, 
    email: { type: String, unique: true}, 
    phones: [PhonesSchema] 
}); 
module.exports = mongoose.model('Person', PersonSchema); 

我的問題來了,當我嘗試用角去實現它?我能夠做到這一點的電話號碼,但不是當我想添加更多然後...當我試圖通過person.phones [$索引] [類型]它也不工作......

<form ng-submit="save(person)"> 
    <fieldset data-ng-repeat="Phonefield in Phonefields track by $index"> 
    <select name="type[$index]" ng-model="person.phones.type" class="form-control"> 
     <option>Mobile </option> 
     <option>Home </option> 
     <option>Urgence</option> 
    </select> 

    <input type="text" placeholder="Phone" name="number[$index]" ng-model="person.phones.number" class="form-control"> 
    <button class="btn btn-danger" ng-show="$last" ng-click="removePhonefield()">-</button> 
    <button class="btn btn-primary" ng-click="addNewPhonefield()">Add fields</button> 
    </fieldset> 
    <button type="submit" class="btn btn-primary" ng-click="save($index, person)">Create</button> 
</form> 

我的手機領域,將動態添加使用此代碼(效果很好)

$scope.Phonefields = [{id: '0'}]; 

$scope.addNewPhonefield = function() { 
    var newItemNo = $scope.Phonefields.length+1; 
    $scope.Phonefields.push({'id':newItemNo}); 
}; 

$scope.removePhonefield = function() { 
var lastItem = $scope.Phonefields.length-1; 
$scope.Phonefields.splice(lastItem); 
}; 

這是我保存功能

$scope.save = function(index,person) { 
    $http.post('http://localhost:3001/api/person', person) 

    .then(function(response) { 

     $scope.persons.push(response.data); 

    }); 

我如何轉換內角郵遞員值我通過,但?
鍵:手機[1] [類型] 值: 「移動」

謝謝大家

+1

- 該保存功能中「person」的輸出是什麼?另外,請檢查請求標題,它應該告訴你是否發送了其他電話號碼。 – KFE

+0

此外,你的ng模型被設置爲'ng-model =「person.phones.type」'..這不會起作用。它需要是'person.phones [$ index] .type'或類似的...我想象那是你的問題。您正在嘗試爲多個輸入使用相同的模型。 – KFE

+0

如果我只輸入1個數字(在請求標題中看到),但不止如此,則不會傳輸任何內容。當我用person.phones [$ index] .type ....相同的結果...什麼都沒有... – Dryan

回答