Sha256: e2b72d0c70fbee1d4a807937afc573d93d1209de980b4190b585ed8b9be640c6
Contents?: true
Size: 1.38 KB
Versions: 11
Compression:
Stored size: 1.38 KB
Contents
class ExampleRow extends React.Component { render() { const {ModelInput} = Rev.Components return <div><ModelInput model={this.props.model} field="name" /></div> } } class ExampleControls extends React.Component { render() { return <button onClick={this.addOne.bind(this)}>+</button> } addOne(e) { e.preventDefault() this.props.items.add({}) } } class EchoModel extends Backbone.Model { get urlRoot() { return '/echo' } sync() { this.trigger('sync') } } Rev.registerExample('ModelHasManyInput', class ModelHasManyInputExample extends React.Component { static get mixins() { return [Backbone.Events] } constructor(props) { super(props) this.state = { model: new EchoModel(), } } render() { const {ModelForm, ModelHasManyInput} = Rev.Components return ( <ModelForm model={this.state.model}> Model JSON: {JSON.stringify(this.state.model.attributes)} <ModelHasManyInput model={this.state.model} field="rows" rowComponentClass={ExampleRow} controlComponentClass={ExampleControls} /> <button>Submit</button> </ModelForm> ) } onChange() { this.forceUpdate() } componentDidMount() { this.listenTo(this.state.model, 'all', this.onChange.bind(this)) } componentWillUnmount() { this.stopListening() } })
Version data entries
11 entries across 11 versions & 1 rubygems