I had the same issue, but it went away after we discovered that a label showing an attribute value was displaying an empty value. could be worth a look
So it seems to be when you show a value in a label via association. I just put the associated label inside a nested data view and now the page loads.
Sounds like this will need to get fixed by Mendix. Better raise a ticket for it at support.mendix.com.
Any else have the same experience?
Quick update. I have opened a ticket with Mendix and, after some back and forth, they were able to replicate the issue. They have escalated the issue. They did also recommend a similar workaround to the one mentioned by Ryan. In our case, we would have to do this in several places in several different apps. Hoping for a patch. Luckily, we're in no rush and are doing fine on 7.22.2 for now.
This is resolved in modeler 7.23.3!
The issue arise when js/jquery is not able to refer to the element. It is because at the time of rendering the page(view), object is null or undefined - which means that there is no instance of a class in the variable. If you are getting data for object from an async call(api's), these kind of problems will arise. So you should always check the object whether it is null or undefined then if it is not, you can access its properties.
The standard way to catch null and undefined simultaneously is this:
if (variable == null) {
// your code here.
}
Because null == undefined is true, the above code will catch both null and undefined.
Also you can write equivalent to more explicit but less concise:
if (variable === undefined variable === null) {
// your code here.
}
This should work for any variable that is either undeclared or declared and explicitly set to null or undefined.
In most cases it is related to getElementById(). So getting a value from an input could look like this:
var value = document.getElementById("frm_new_user_request").value
Also you can use some JavaScript framework, e.g. jQuery, which simplifies operations with DOM (Document Object Model) and also hides differences between various browsers from you.
Getting a value from an input using jQuery would look like this:
input with ID "element": var value = $("#element).value
input with class "element": var value = $(".element).value