The answer is it depends on how you've constructed your listener. But in general options 2 and 3 from your repeating section context work (with the right listener setup), while in a non repeating context only option 3 works. You can always explicitly specify a rowID when getting/setting repeating attributes, regardless of the listener setup that you use. The implicit rowID method I am not as experienced with because I've never found it that useful, but in general it works like so: If you have specified that a listener is listening for a repeating section change (e.g. on('change:repeating_section1:my_attr',myFunc); ), then you can implicitly cast the rowID of the listened to section by using the repeating_section1_my_attr attribute name syntax. This works in getAttrs and setAttrs. Using an explicit rowID is my preferred method because it keeps the entire code base consistent and allows you to mix repeating listeners and non repeating listeners in the same listener without worries. Using the implicit rowID method means that you then have to refactor your code if you ever want to have a non repeating attribute change call that same function. Additionally, manually extracting the rowID from the event of a listener is trivial and adds no noticeable overhead to the operation. As for options 4 - 6 in your repeating context, here's what should be going on: repeating_section 2 _myattr => should fail IMO, but my experience shows that it is handled as repeating_section 1 _row1_myattr In getAttrs this shouldn't find anything (assuming you don't have a repeating_section2 defined anywhere). It should just return an object with undefined for any keys that you specified for it (might be an empty string, been a while since I looked at this hard). However, if you use this in setAttrs, it will create the attributes, row, and section; there just won't be any html to display that section. I've used this little trick to store complex data that is needed for operations but shouldn't be displayed or accessible to the user. This is also how you can programmatically create repeating sections, and also works the same way for nonexistent non-repeating attributes. repeating_section1_row 2 _myattr => should fail IMO, but is it the case? Should be the same as section2 above. repeating_section 2 _row 2 _myattr => repeating_section 2 _row 2 _myattr ?? Should be the same as section 2 and row2 above. EDIT: Added description of what happens when using setAttrs to set a nonexistent attribute.