使用backbone.js

时间:2016-03-04 00:07:29

标签: javascript jquery forms backbone.js

使用backbone.js,我有一个我能够提交的表单,在提交后,savepost()函数将其重定向到仪表板URL。仪表板是一个不同的视图,并希望该页面说出"您的帖子已提交"。我可以使用localstorage,但不想依赖它。

我也看到了流行的event aggregator options,但不确定这是否适用于在不同页面中呈现的视图。

enter image description here

1 个答案:

答案 0 :(得分:1)

听起来你需要一个全球事件总线。

这是一个很好的例子jsfiddle,作者在小提琴中被认可

https://jsfiddle.net/JamesOR/m8J9L/

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent mIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
                mIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 240);
                startActivityForResult(mIntent, 1);
            }
        });
    }

    @Override
    public void onPause() {
        super.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == 1) {
            if (resultCode != Activity.RESULT_CANCELED) {

            }
        }
    }
}

然后,在仪表板视图中,监听事件。在小提琴中你会注意到作者使用var eventBus = _.extend({}, Backbone.Events); 。这是旧样式,主干作者现在推荐.on,因为一旦删除了视图,所有侦听器都会自动删除。 listenTo

不是这种情况
on

然后,在提交表单时,触发事件。

initialize: function () {
    this.listenTo(eventBus,'formSubmitted',this.onFormSubmit);
}

在处理程序方法

eventBus.trigger('formSubmitted', /** data that you want to send to handler*/);