I'm trying to understand how updating fields when they're inside a container works.
Below I put my test code, but the fields are not updated, no matter how I do the assignment within the click of the button.
What am I doing wrong?
class Person extends Model
{
static get fields()
{
return [{ name: "Name" }];
}
}
class Order extends Model {
static get fields() {
return [
{ name: "OrderId", type: "int" },
{ name: "Buyer", type: "object" },
{ name: "BuyerName", type: "string", dataSource: "Buyer.Name"}
];
}
}
let person = new Person({ Name: "A Person" });
let newPerson = new Person({ Name: "Another Person" });
let order = new Order({ OrderId: 123, Buyer: person });
let store = new Store({
data: [order],
modelClass: Order
});
let orderIdField = new TextField({
width: 200,
label: "Order Id",
icon: "b-fa b-fa-plug",
style: "margin-right: .5em",
name: "OrderId"
});
let personNameField = new TextField({
width: 200,
label: "Customer name",
icon: "b-fa b-fa-plug",
style: "margin-right: .5em",
name: "BuyerName"
});
let button = new Button({
text: "Button",
onClick: function () {
store.first.Buyer = newPerson;
store.first.OrderId = 5555;
console.log(store.first);
console.log(order);
}
});
let myContainer = new Container({
appendTo: document.body,
items: [orderIdField, personNameField, button]
});
myContainer.record = store.first;