Skip to content

Commit bac163c

Browse files
committed
ViewController must call parent constructor before creating observers.
1 parent 826cd0a commit bac163c

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

packages/deft/src/coffee/mvc/Observer.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ Ext.define( 'Deft.mvc.Observer',
140140
hostTarget = @locateTarget( host, target )
141141
return false if not hostTarget?
142142

143-
if hostTarget.isObservable? or hostTarget.mixins?.observable?
143+
if hostTarget.isObservable? or hostTarget.isUtilObservable? or hostTarget.mixinId is "observable" or hostTarget.mixins?.observable?
144144
return true
145145
else
146146
hostTargetClass = Ext.ClassManager.getClass( hostTarget )

packages/deft/src/coffee/mvc/ViewController.coffee

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,10 @@ Ext.define( 'Deft.mvc.ViewController',
166166
@companions = Ext.merge( @companions, config.companions )
167167
delete config.companions
168168

169-
@initConfig( config ) # Ensure any config values are set before creating observers.
169+
# Core Sencha VC logic, including initConfig() call, happens in superclass constructor, so call it first.
170+
@callParent( arguments )
170171
@createObservers()
171-
return @callParent( arguments )
172+
return @
172173

173174

174175
###*

packages/deft/test/coffee/mvc/ViewController.coffee

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ describe( 'Deft.mvc.ViewController', ->
257257

258258
specify( 'attaches listeners to observed objects in a ViewController with no subclasses', ->
259259
eventData = { value1: true, value2: false }
260-
260+
261261
Ext.define( 'ExampleViewController',
262262
extend: 'Deft.mvc.ViewController'
263263

@@ -275,11 +275,11 @@ describe( 'Deft.mvc.ViewController', ->
275275
sinon.spy( ExampleViewController.prototype, 'messageHandler' )
276276

277277
messageBus = Ext.create( 'Ext.util.Observable' )
278-
278+
279279
viewController = Ext.create( 'ExampleViewController',
280280
messageBus: messageBus
281281
)
282-
282+
283283
expect( hasListener( messageBus, 'message' ) ).to.be.true
284284

285285
messageBus.fireEvent( 'message', eventData )

0 commit comments

Comments
 (0)