lib/middleware/jng.directives.js
function checkOnScopeChangeVals(partial, partialName) {
    var remodelOnScopeChange = partial.remodelOnScopeChange || (partial.remodel && partial.remodel.onScopeChange);
    var rerenderOnScopeChange = partial.rerenderOnScopeChange || (partial.rerender && partial.rerender.onScopeChange);
    var scope = partial.scope || {};

    _.each(remodelOnScopeChange, function (scopeVal) {
        var idx = scopeVal.indexOf('.');
        var val = idx > 0 ? scopeVal.substring(0, idx) : scopeVal;
        if (!scope[val]) {
            throw new Error(partialName + ' remodelOnScope value \'' + scopeVal + '\' is not defined in the scope definition.');
        }
    });

    _.each(rerenderOnScopeChange, function (scopeVal) {
        var idx = scopeVal.indexOf('.');
        var val = idx > 0 ? scopeVal.substring(0, idx) : scopeVal;
        if (!scope[val]) {
            throw new Error(partialName + ' rerenderOnScopeChange value \'' + scopeVal + '\' is not defined in the scope definition.');
        }
    });
}
function checkOnScopeChangeVals(partial, partialName) {
    var remodelOnScopeChange = partial.remodelOnScopeChange || (partial.remodel && partial.remodel.onScopeChange);
    var rerenderOnScopeChange = partial.rerenderOnScopeChange || (partial.rerender && partial.rerender.onScopeChange);
    var scope = partial.scope || {};

    _.each(remodelOnScopeChange, function (scopeVal) {
        var idx = scopeVal.indexOf('.');
        var val = idx > 0 ? scopeVal.substring(0, idx) : scopeVal;
        if (!scope[val]) {
            throw new Error(partialName + ' remodelOnScope value \'' + scopeVal + '\' is not defined in the scope definition.');
        }
    });

    _.each(rerenderOnScopeChange, function (scopeVal) {
        var idx = scopeVal.indexOf('.');
        var val = idx > 0 ? scopeVal.substring(0, idx) : scopeVal;
        if (!scope[val]) {
            throw new Error(partialName + ' rerenderOnScopeChange value \'' + scopeVal + '\' is not defined in the scope definition.');
        }
    });
}
function checkOnScopeChangeVals ( partial , partialName ) { var remodelOnScopeChange = partial . remodelOnScopeChange || ( partial . remodel && partial . remodel . onScopeChange ) ; var rerenderOnScopeChange = partial . rerenderOnScopeChange || ( partial . rerender && partial . rerender . onScopeChange ) ; var scope = partial . scope || { } ; _ . each ( remodelOnScopeChange , function ( scopeVal ) { var idx = scopeVal . indexOf ( '.' ) ; var val = idx > 0 ? scopeVal . substring ( 0 , idx ) : scopeVal ; if ( ! scope [ val ] ) { throw new Error ( partialName + ' remodelOnScope value \'' + scopeVal + '\' is not defined in the scope definition.' ) ; } } ) ; _ . each ( rerenderOnScopeChange , function ( scopeVal ) { var idx = scopeVal . indexOf ( '.' ) ; var val = idx > 0 ? scopeVal . substring ( 0 , idx ) : scopeVal ; if ( ! scope [ val ] ) { throw new Error ( partialName + ' rerenderOnScopeChange value \'' + scopeVal + '\' is not defined in the scope definition.' ) ; } } ) ; }
Make sure the remodelOnScopeChange and rerenderOnScopeChange values are
all from the isolated scope definition. In other words, are values that
come from the parent scope.

@param partial
@param partialName
Make sure the remodelOnScopeChange and rerenderOnScopeChange values are all from the isolated scope definition . In other words are values that come from the parent scope .