fix triggerChange bug
Setting a variable with undefined could lead to an infinite loop because the triggerChange is applied directly to the main data object