Esempio n. 1
0
        public ContactsViewModel(List <Contact> contacts)
        {
            var self = this;

            self.Contacts = Knockout.ObservableArray(KnockoutUtils.ArrayMap(
                                                         contacts,
                                                         contact => new Contact(
                                                             firstName: contact.FirstName,
                                                             lastName: contact.LastName,
                                                             phones: Knockout.ObservableArray(contact.Phones.Value))
                                                         ));
            self.AddContact = () => self.Contacts.Push(new Contact(
                                                           firstName: "",
                                                           lastName: "",
                                                           phones: Knockout.ObservableArray <Phone>()));
            self.RemoveContact = contact => self.Contacts.Remove(contact);
            self.AddPhone      = contact => contact.Phones.Push(new Phone(type: "", number: ""));
            self.RemovePhone   = phone => jQuery.Each(self.Contacts.ToList(), (index, value) => value.Phones.Remove(phone));
            self.Save          = () => {
                self.LastSavedJson.Value = Json.Stringify(Knockout.ToObject(self.Contacts), (string[])null, 2);
            };
            self.LastSavedJson = Knockout.Observable("");
        }