2013-03-18 2 views
-2

У меня есть несколько сеток, которые я бы хотел запустить под кнопкой отправки sigle. Вот код: http://jsfiddle.net/aETvS/Knockout js multiple bindings

Я получаю сообщение об ошибке «Не удается прочитать свойство„толчок“неопределенных»

self.orders = ko.observableArray(orders); 

self.addorder = function() { 
    self.orders.push({ 
     name: "", 
     price: "" 
    }); 
}; 

self.removeorder = function(order) { 
    self.orders.remove(order); 
}; 


self.hardware = ko.observableArray(hardware); 

self.addhardware = function() { 
    self.hardware.push({ 
     name: "", 
     price: "" 
    }); 
}; 

self.removehardware = function(hardware) { 
    self.hardware.remove(hardware); 
}; 


self.save = function(form) { 
    alert("Could now transmit to server: " + ko.utils.stringifyJson(self.orders)); 
    // To actually transmit to server as a regular form post, write this: ko.utils.postJson($("form")[0], self.orders); 
}; 
+0

@ downvoters, пожалуйста, не голосуйте без указания ваших ценных комментариев. – nav0611

+0

Это потому, что скрипка не совсем то, что я пытаюсь выполнить. Я должен обновить его, лучший пример здесь: http://jsfiddle.net/7RDc3/2076/ Я пытаюсь поместить несколько наблюдаемых объектов внутри одной функции (если это правильный путь), в основном мне нужно больше, чем один foreach (с кнопкой добавления), содержащейся в одной форме с одной кнопкой отправки. – Stephen

+0

Есть много ошибок в вашей скрипке .. Пусть эта скрипка поможет вам в том, что вы пытаетесь сделать http://jsfiddle.net/naveenkumarm/hr94y/ – nav0611

ответ

0

пару вещей.

  1. Ваша скрипка не включает нокаут.
  2. Вы хотите отправить форму. Добавьте привязку отправки к вашей форме.

    данные привязывать = "представляет: сохранить"

Я обновил свою скрипку. Однако я не вижу ошибки в массиве.

http://jsfiddle.net/sujesharukil/qMDH5/19/

<form class="form-horizontal margin-zero" method="POST" action="http://toolkit.dev/" accept-charset="utf-8" novalidate="novalidate" data-bind="submit: save"> 

Надежда, что помогает.

-Suj

+0

Забыл загрузить нокаут на этой скрипке, извините, я сделал несколько, прежде чем положить его на этот пост. Тем не менее, я знаю, что проблема находится где-то в js, который я разместил в stackoverflow, мой js слаб, и я не уверен, правильно ли я написал синтаксис, мне просто нужно, чтобы кто-то подтвердил, что он написан в соответствии с нокаутом и javascript. – Stephen

+0

Когда вы получите сообщение об ошибке? Я предполагаю, что вы вызываете функцию. Из кода, который вы опубликовали, похоже, что есть только два «push» вызова, и оба они находятся в функции «addOrders» и «addHardware». Причина, по которой вы получаете ошибку, состоит в том, что массив не определен (предполагается, что код, который вы разместили здесь, является тем, на который вы получаете ошибку). –

+0

Я полагаю, что это правда, не могли бы вы изменить мой код с определенным массивом или как бы определить его? – Stephen