2014-02-06 2 views
0

Я создаю приложение AngularJS для создания викторины с несколькими вариантами выбора. Вопросы и связанные варианты добавляются или удаляются из следующей модели.Перетаскивание привязки модели AngularJS при удалении из

$scope.testFormChoiceCount = [ 
{question: '', choices: [ 
    {choice: ''}, 
    {choice: ''}, 
    {choice: ''} 
    ] 
}, 
{question: '', choices: [ 
    {choice: ''}, 
    {choice: ''}, 
    {choice: ''} 
    ] 
}, 
]; 

Моя проблема случай: добавить вопрос, и новый объект добавляется в массив модели. Затем, если я удаляю, например, первый вопрос, разрывы привязки модели приводят к вводу последнего вопроса, бросая ошибку «b is undefined», когда я пытаюсь ввести в них.

Я делаю ошибку привязки всей ng-модели? Может ли кто-нибудь помочь мне с этой проблемой.

скрипку: http://jsfiddle.net/D7M2Z/

Вот как я удалить и объект из модели массива

$scope.removeQuestion = function(index){ 
    $scope.testFormChoiceCount.splice(index, 1); 
} 
+0

Это работает для меня. Добавление не работает, когда все вопросы удаляются. –

+0

Если вы удалите все вопросы, больше не будет моделировать. Этого я еще не помешал. Но если вы добавите вопрос и удалите предыдущий, последний разрывается. Любые мысли по этому поводу? –

ответ

0

Это должно помочь вам jsfiddle

В этой строке:

for(var i=0; i<$scope.testFormChoiceCount[0].choices.length; i++){ 
     newobject.choices.push(new Object({choice : ''})); 
    } 

Когда вы удаляете все объекты, нет значения $ scope.testFormChoiceCount [0] .choices.length

+0

Спасибо за освобождение. В конце концов мне пришлось бы иметь дело с этим. Однако это был не вопрос, который меня беспокоил. Если вначале вы удаляете первый вопрос, вы больше не можете писать в остальные поля параметров. Любые мысли о том, почему это связывание идет не так? –

+0

Это неверно: У меня нет времени, но вам нужно подумать о том, как решить внешний интерфейс другим способом, это создает больше проблем. Если вы не решите это, я попробую позже. –

+0

Спасибо! Там действительно была проблема с значением externalindex. Или лучше сказал, с моим использованием ng-init. Маска выбора принимает неправильные значения после того, как я удалил объект из нижнего индекса. –

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