@boikom
@boikom
Forum Replies Created
-
AuthorPosts
-
admin
KeymasterHi Cetin,
app.data is an Object. This is not a regression. It is by design. If you want to set the data, you will need to set the entire object.
Regards,
George
Smart HTML Elements
https://www.htmlelements.comAugust 27, 2019 at 5:33 am in reply to: Smart.App data binding smart-model='reference' vs value='{{reference}}'' #100243admin
KeymasterHi Cetin,
It’s better to use {{value}} for declarative rendering only. The smart-model also determines automatically the component type and binds it as the bound property could not be ‘value’, it could be ‘selectedValues’ for lists, ‘checked’ for checkboxes and radio buttons.
Best Regards,
George
Smart HTML Elements
https://www.htmlelements.comAugust 26, 2019 at 2:22 pm in reply to: grid with css height auto and add new row fails to display rows after ~3 adds #100237admin
KeymasterHi,
Update: The reported behavior of the Grid is resolved in ver. 4.2.0.
Regards,
Boyko Markov
Smart Html Elements Team
https://www.htmlelements.com/admin
KeymasterI have a workaround – I actually already had the keys in my own object, which I used to initialize app.
// Note: data can only be nested one-deep!
// As well, event functions cannot be nested!
const smartData = {
enrollmentNewSubmit: newEnrollmentSubmit,
enrollmentNew: {
courseID: ”,
loginName: ”,
studentID: ”
},
schoolNewSubmit: newSchoolSubmit,
schoolNew: {
name: ”,
shortName: ”,
description: ”,
address: ”,
city: ”,
stateCode: ”,
zipCode: ”,
province: ”,
country: ‘US’,
postalCode: ”,
codes: ”,
tags: ”,
notes: ”,
annex: ”
}
};
So, I can e.g.
for (const key of Object.keys(smartData.schoolNew)) {
console.log(<backtick>key: ${key} hasOwnProperty: ${boundAttrs.hasOwnProperty(key)} type: ${typeof boundAttrs[key]}<backtick>);
}
So, I can iterate through that way and get only my own added properties.
Please add some easy way to do this in the future, or let me know what I am missing if it already exists.admin
KeymasterWell, ignoring functions won’t do it. Because the Proxy object has e.g. _canNotify which is boolean, propertyName string, notifyFn object.
I could filter these out explicitly (along with functions) after copying with Object.assign() but then I have to worry with each future release what has been added that I have to filter out.
What am I missing here? What is the use of of this if I cannot iterate my own properties that I added in app.data without pollution? I need to make a separate redundant list of my key names, it is a royal pain.admin
KeymasterUgh! This forum is IMPOSSIBLE! That code did not paste right. The forum did not like my backticks!
The line in my “for” is: (I substitute <backtick> for actual backtick below, because the forum doesn’t like backtick…)
console.log(<backtick>key: ${key} hasOwnProperty: ${boundAttrs.hasOwnProperty(key)}<backtick>);admin
KeymasterTo be more clear:
const boundAttrs = app.data.schoolNew;
console.info(‘boundAttrs’, boundAttrs);
console.info(‘boundAttrs.keys:’, Object.keys(boundAttrs));
for (const key of Object.keys(boundAttrs)) {
console.log(key: ${key} hasOwnProperty: ${boundAttrs.hasOwnProperty(key)}
);
}
This gives me the list of keys from above, and after adding check for own property, they are all own property.
So, how do I get JUST the bound variables from the Proxy object, WITHOUT pollution like “propertyName”, etc?
I guess I can filter out functions, and what is left will just be my properties? Isn’t there some function to do that for me? It would seem very common to want to iterate through bound variables, but there seems no convenient way to do it.
admin
KeymasterSorry. That did not paste as I expected! (And there doesn’t seem to be any way to edit a post?)
boundAttrs.keys: (23) [“name”, “shortName”, “description”, “address”, “city”, “stateCode”, “zipCode”, “province”, “country”, “postalCode”, “codes”, “tags”, “notes”, “annex”, “hasOwnProperty”, “isPrototypeOf”, “propertyIsEnumerable”, “toString”, “valueOf”, “toLocaleString”, “_canNotify”, “notifyFn”, “propertyName”]admin
KeymasterI think you missed the point. Sorry, I should not have mixed comments about the documentation with comments about Observables.
So, apparently, app.data items are Observables.
I want to be able to enumerate through e.g. app.data.enrollmentNew so that I can do something with all of the key/value pairs.
But I find that Observable objects are polluted with many additional properties that are NOT the properties that I defined in app.data.enrollmentNew. This makes it fairly useless for many purposes.
How can I iterate through ONLY the properties that I defined?
boundAttrs.keys:
<div class=”console-view-object-properties-section object-value-array source-code expanded”>
<div class=”tree-outline-disclosure tree-outline-disclosure-hide-overflow”>-
<li class=”parent object-properties-section-root-element expanded selected” tabindex=”-1″><span class=”console-object console-object-preview” tabindex=”-1″><span class=”object-description”>(23) </span><span class=”object-properties-preview”>[<span class=”object-value-string”>”name”</span>, <span class=”object-value-string”>”shortName”</span>, <span class=”object-value-string”>”description”</span>, <span class=”object-value-string”>”address”</span>, <span class=”object-value-string”>”city”</span>, <span class=”object-value-string”>”stateCode”</span>, <span class=”object-value-string”>”zipCode”</span>, <span class=”object-value-string”>”province”</span>, <span class=”object-value-string”>”country”</span>, <span class=”object-value-string”>”postalCode”</span>, <span class=”object-value-string”>”codes”</span>, <span class=”object-value-string”>”tags”</span>, <span class=”object-value-string”>”notes”</span>, <span class=”object-value-string”>”annex”</span>, <span class=”object-value-string”>”hasOwnProperty”</span>, <span class=”object-value-string”>”isPrototypeOf”</span>, <span class=”object-value-string”>”propertyIsEnumerable”</span>, <span class=”object-value-string”>”toString”</span>, <span class=”object-value-string”>”valueOf”</span>, <span class=”object-value-string”>”toLocaleString”</span>, <span class=”object-value-string”>”_canNotify”</span>, <span class=”object-value-string”>”notifyFn”</span>, <span class=”object-value-string”>”propertyName”</span>]</span></span>
- <span class=”name-and-value”><span class=”name”>0</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>name<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>1</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>shortName<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>2</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>description<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>3</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>address<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>4</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>city<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>5</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>stateCode<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>6</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>zipCode<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>7</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>province<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>8</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>country<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>9</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>postalCode<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>10</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>codes<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>11</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>tags<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>12</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>notes<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>13</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>annex<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>14</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>hasOwnProperty<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>15</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>isPrototypeOf<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>16</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>propertyIsEnumerable<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>17</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>toString<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>19</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>toLocaleString<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>20</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>_canNotify<span class=”object-value-string-quote”>”</span></span></span>
- <span class=”name-and-value”><span class=”name”>21</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>notifyFn<span class=”object-value-string-quote”>”</span></span></span>
<li class=””><span class=”name-and-value”><span class=”name”>18</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>valueOf<span class=”object-value-string-quote”>”</span></span></span>
<li class=””><span class=”name-and-value”><span class=”name”>22</span>: <span class=”object-value-string value”><span class=”object-value-string-quote”>”</span>propertyName<span class=”object-value-string-quote”>”</span></span></span>
<li class=””><span class=”name-and-value”><span class=”name object-properties-section-dimmed”>length</span>: <span class=”object-value-number value”>23</span></span></div>
</div>August 21, 2019 at 7:09 am in reply to: Grid Filtering causes excessive delays with requestAnimationFrame #100220admin
KeymasterHi,
This is considered to be normal. Filtering requires additional html elements that the Grid should create. This will slow the things especially with several grids on the page. I suggest you to create the grids on demand when a tab is selected
Regards,
George
Smart HTML Elements Team
https://www.htmlelements.comadmin
KeymasterHello,
Thanks for writing.
Grid Aggregates/Summaries are not yet implemented. That is the reason why summary settings have no effect. When we implement them, we will add demos and docs and release notes.
Regards,
George
Smart HTML Elements Team
https://www.htmlelements.comadmin
KeymasterHi jtara,
We will consider your comments about our documentation and framework. About the listing of functions of objects – we document only built-in functions, not all inherited from HTMLElement.
Regards,
George
Smart HTML Elements Team
https://www.htmlelements.comadmin
KeymasterFWIW, for now I revert to gathering input values using a little formToObj function that goes through and collects input, select, textarea values from the form…
August 16, 2019 at 12:13 pm in reply to: grid with css height auto and add new row fails to display rows after ~3 adds #100195admin
KeymasterI wrote in my previous post that it works only with defined height as shown in demos.
Regards,
Boyko Markov
Smart Html Elements Team
https://www.htmlelements.com/August 16, 2019 at 11:54 am in reply to: grid with css height auto and add new row fails to display rows after ~3 adds #100194admin
Keymasterhttps://codepen.io/cetinsert/pen/eYOZqEg – I realized this works up to the CSS-defined height and fails again (9 rows in this link). Increase height in CSS and it works longer.
Thank you for your prompt responses. -
AuthorPosts