Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function() {
- // Essentially function(name = "SC.View", options = {data: {}, hash: {}})
- var parseHelperArguments = function(viewClassNameOrOptions, options) {
- var viewClass;
- if (_.isString(viewClassNameOrOptions)) {
- viewClass = SC.getPath(viewClassNameOrOptions);
- sc_assert( "Could not find view class %@".fmt(viewClassNameOrOptions), viewClass != null );
- options = options || {};
- } else {
- viewClass = SC.View;
- options = viewClassNameOrOptions || {};
- }
- options.data = options.data || {};
- options.hash = options.hash || {};
- return [viewClass, options];
- };
- var addChildView = function() {
- var parsedArguments = parseHelperArguments.apply(this, arguments),
- viewClass = parsedArguments[0],
- options = parsedArguments[1],
- parentView = options.data.view,
- childViewClass,
- childView;
- sc_assert( "childView can only be used inside of a TemplateContainerView", TemplateContainerView.detect(parentView) );
- childViewClass = SC.Handlebars.ViewHelper.viewClassFromHTMLOptions(viewClass, options.hash, this);
- childView = parentView.createChildView(childViewClass, {
- template: options.fn
- });
- parentView.get('childViews').pushObject(childView);
- };
- Handlebars.registerHelper('childView', addChildView);
- }());
Add Comment
Please, Sign In to add comment