Hi,
I am new to Kendo and running into below issue.
I have a row with two textboxes (Phone Number & Email Address). I have a UserContactViewModel with these entries as PhNumber1 & Email1. But I need to added additional rows on button click, so I created a template which will add the Phone NUmber and email address textbox on each click for user to provide additional information.
Issue is every time I click, I am able to add the template but the UserContactViewModel will not reflect any new elements that I have added through Template. I can only see the first element that was loaded initially.
Can I get some help on how to update "UserContactViewModel" everytime I add a new row to the div. So that all existing options on the two textboxes applies to new textboxes that I have added through kendo UI template.
JS:
function addUserContact() {
var template = kendo.template($("#AddUserContact").html());
// Here I am just passing the counter or no. of clicks the user made so we need that number next to variable like Email2,
Email3 etc
var data = [
{ userCount: no. of btn click }
];
var result = kendo.render(template,data);
$("#replicate").append(result);
// I tried to use kendo.bind("#myviewname",userViewModel);
}
UserContactViewModel:
Class UserContactViewModel {
public users: knockoutObservableArray<
any
> = ko.obsevableArray([]);
public PhNumber1: knockoutObservable<
int
> = ko.observable('');
public Email1: knockoutObservable<
string
> = ko.observable('');
public isBeingUpdated: knockoutObservable<
boolean
> = ko.observable<
false
);
public isLoading: knockoutObservable<boolean> = ko.observable<
false
);
public isEditing: knockoutObservable<boolean> = ko.observable<
false
);
public isEditEnabled: knockoutObservable<boolean> = ko.observable<
false
);
public isModified: knockoutObservable<boolean> = ko.observable<
false
);
public UserContactViewModelGroup: knockoutValidationError;
constructor() {
let
self
=
this
;
self.PhNumber1.extend({
required: { message: 'Phone Number is required', onlyIf: () => { return self.Email1 ! == '';} }
});
self.userViewModelGroup = ko.validation.group([
this.phNumber1,
this.Email1
]);
}
}
Thanks,
AG