【发布时间】:2014-03-24 02:29:43
【问题描述】:
我在 Backbone.js 中有两个视图,每个视图都有自己的 html 选择元素。 在第一个列表选择事件上,我希望触发一个事件,提醒第二个视图(选择元素)接收事件并触发更新。
我的问题在于初始选择更改方法被调用并引发事件,尽管第二个视图从未注册它。
define([
'jquery',
'underscore',
'backbone',
'models/user/UserModel',
'collections/teams/TeamsCollection',
'models/team/TeamModel'
], function ($, _, Backbone, UserModel, TeamsCollection, TeamModel) {
var ClubSelectView = Backbone.View.extend({
el: "#clubList",
events: {
"select #clubList option": "optionSelected"
},
initialize: function () {
var that = this;
var user = UserModel;
this.model = user;
this.model.on('change', this.updateTeams, this);
var teams = new TeamsCollection();
this.collection = teams;
this.createEasyDropDown();
},
optionSelected: function () {
alert("optionSelected"); //this alert is called
this.trigger("teamSelect:change", "Team selected from dropdown items");
},....
第二个视图监听“teamSelect:change”触发器
define([
'jquery',
'underscore',
'backbone',
'models/user/UserModel',
'collections/matches/MatchesCollection',
'models/match/MatchModel'
], function ($, _, Backbone, UserModel, MatchesCollection, MatchModel) {
var MatchSelectView = Backbone.View.extend({
el: "#fixtureList",
events: {
},
initialize: function () {
var that = this;
var user = UserModel;
var teams = new MatchesCollection();
this.collection = teams;
this.createEasyDropDown();
this.on("teamSelect:change", function (msg) {
alert("teamSelect:change " + msg); //never triggered
});
},
任何关于如何正确设置视图之间触发器的帮助都会很棒!干杯
【问题讨论】:
标签: javascript backbone.js backbone-events