View 木偶JS3:ui在第二次显示视图后具有字符串选择器
问题是在第二次View 木偶JS3:ui在第二次显示视图后具有字符串选择器,view,coffeescript,marionette,View,Coffeescript,Marionette,问题是在第二次显示视图之后this.ui.uielemnet不返回元素,只返回字符串选择器。事件和其他逻辑工作得很好,但我不能在第二次之后获得元素。在第一个show视图中,`一切按计划进行 代码如下。我为explain添加了控制台日志。咖啡(手稿) 路由器: class App.Routers.PanelRouter extends Marionette.AppRouter initialize: (options = {}) -> @mainView
显示视图之后this.ui.uielemnet
不返回元素,只返回字符串选择器。事件和其他逻辑工作得很好,但我不能在第二次之后获得元素。在第一个
show视图中,`一切按计划进行
代码如下。我为explain添加了控制台日志。咖啡(手稿)
路由器:
class App.Routers.PanelRouter extends Marionette.AppRouter
initialize: (options = {}) ->
@mainView = options.cpView
routes:
'sbis-docs(/)': 'sbisDocShow'
'sbis-send(/)': 'sbisSendShow'
sbisDocShow: ->
view = new App.Views.SbisDoc
@mainView.getRegion('childRegion').show view
view.showTable()
sbisSendShow: ->
view = new App.Views.SendSbis
@mainView.getRegion('childRegion').show view
part of view
class App.Views.SendSbis extends Marionette.View
template: _.template(App.Templates.SbisSend);
initialize:() ->
vent.on('event:change-search-method', @changeSearchMethod)
vent.on('event:change-send-method', @changeSendMethod)
changeSearchMethod: (data) =>
if data.checked
@ui.cust.attr('placeholder', 'Customer ID')
@ui.labelCust.text('Номер договора')
else
@ui.cust.attr('placeholder', 'Логин')
@ui.labelCust.text('Логин пользователя')
changeSendMethod: (data) =>
console.log @ui.month
if data.checked
@ui.month.prop('disabled', false)
else
@ui.month.prop('disabled', true)
ui:
sendDocs: '#send-docs'
form: '#form-docs'
cust: '#cust'
year: '#year'
month: '#month'
labelCust:'#label-cust'
其他意见:
class App.Views.SetupSend extends Marionette.View
template: _.template(App.Templates.SetupSend)
onAttach: ->
@ui.checkboxes.bootstrapToggle()
ui:
search: '#search-method'
send: '#send-method'
checkboxes: 'input[type=checkbox][data-toggle^=toggle]'
events:
'change @ui.search': 'changeSearchMethod'
'change @ui.send': 'changeSendMethod'
changeSearchMethod: (e) ->
vent.trigger('event:change-search-method', e.target)
changeSendMethod: (e) ->
vent.trigger('event:change-send-method', e.target)
第一次在changeSendMethod:(数据)
控制台日志中
[input#month.form-control,prevObject:r.fn.init[1]
但当我改变路线并再次返回时,console.log是
#月份
如果我在
$(@ui.month.prop('disabled',false)
上更改@ui.month.prop('disabled',false)
它将正常工作。但我不明白为什么会发生这种情况,以及我如何修复它。好吧,问题是在newshow view
append newvent.on('event:change search method',@changeSearchMethod)
解决我的问题
onDestroy: () ->
vent.off('event:change-search-method', @changeSearchMethod)
vent.off('event:change-send-method', @changeSendMethod)