Example of ‘Locked’ YUI Model

This examples shows how a YUI Model instance can be implemented with a locking feature to prevent changes by overriding the `validate` method.

by ericf

JavaScript

YUI().use('model', function (Y) {

    var User, myUser;
    
    User = Y.Base.create('user', Y.Model, [], {
        isLocked : false,
        
        validate : function (attrs) {
            return (this.isLocked && 'User is locked!') || null;
        }
    }, {
        ATTRS : {
            username : {},
            password : {},
            realname : {}
        }
    });
    
    myUser = new User({
        username : 'ericf',
        password : 'secret',
        realname : 'Eric Ferraiuolo',
    });
    
    myUser.on('error', function (e) {
        alert(e.error);
    });
    
    myUser.isLocked = true;
    myUser.set('password', 'super secret');
    
    myUser.isLocked = false;
    myUser.set('password', 'bla bla');
    alert('Password: ' + myUser.get('password'));
});