使用backbone.js,我有一个我能够提交的表单,在提交后,savepost()函数将其重定向到仪表板URL。仪表板是一个不同的视图,并希望该页面说出"您的帖子已提交"。我可以使用localstorage,但不想依赖它。
我也看到了流行的event aggregator options,但不确定这是否适用于在不同页面中呈现的视图。
答案 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*/);