Comments (2)
Claude,
If I understand what you're trying to do correctly, I have some good news. You don't need to jump through any of those hoops to avoid duplicate ids.
The selectors supplied in the control
configuration for a Deft.ViewController are evaluated relative to the view. If you use itemId
rather than id
, you can completely avoid the duplicate id issue. You can have multiple components in the same application at different levels of the view hierarchy with the same 'itemId' (unlike with 'id').
So if you have a view like this:
Ext.create('MyApp.view.MyView', {
extend: 'Ext.Container',
mixins: ['Deft.Controllable'],
controller: 'MyApp.controller.MyViewController',
items: [
{
xtype: 'button',
itemId: 'submitButton'
},
...
],
...
});
And a ViewController like this:
Ext.create('MyApp.controller.MyViewController', {
extend: 'Deft.ViewController',
control: {
submitButton: {
click: 'onSubmitButtonClick'
}
},
...
onSubmitButtonClick: function() {
// TODO: Do something.
}
});
You can create as many independent instances of MyApp.view.MyView
as you want.
Each will get its own instance of MyApp.Controller.controller.MyViewController
backing it.
Each of those MyViewController instances will evaluate the selectors provided via the control
annotation relative to that view instance. In the example above, the selector is implicit - it will query for '#submitButton' within that view instance. (You can provide explicit selectors if needed through more verbose syntax, as shown on http://deftjs.org/)
So, that's an important distinction - Ext.Controller selectors are global, whereas Deft JS View Controller selectors are relative.
The problem of displaying multiple copies of the same view (each backed by independent view-specific controllers) is one of the problems Deft JS was built to solve.
Let me know if I understood your issue correctly, and if this helps resolve the problem you were having.
Best regards,
-J
from deftjs.
Perfect John! exactly what I wanted.. using itemId is the solution.. whoo hoo! :)
from deftjs.
Related Issues (20)
- DeftJS v0.9 - Promises not working in Internet Explorer 10 HOT 6
- Distribute packages separately. HOT 4
- Update Karma configurations from v0.8 -> v0.10 syntax HOT 1
- Add continuous deployment HOT 10
- Add Ext JS 4.2.2 to the Deft JS Test Suite HOT 2
- Add Sencha Touch 2.3.0 to the Deft JS Test Suite HOT 1
- Update the Test Suite dependencies (Mocha, Chai, Sinon, Promise/A+, etc.)
- Update to Promises/A+ Specification v1.1 and Test Suite v2.0
- Failing to require: the ViewController for a controller: annotation should trigger a warning.
- Sencha Cmd v4.0.0.203 hanging when "requires" : "[email protected]?" added HOT 14
- Migrate back to mixins for Sencha Cmd and Architect compatibility
- Suppress INFO-level log messages when not using the debug build of Sencha Touch HOT 1
- Superclass merging of ViewController 'control:' configurations
- ViewController companions HOT 4
- Touch 2.3.0 coverage report might overwrite 2.2.1 report
- deft.js and deft-debug.js are not in the repo HOT 1
- Sencha cmd 5.0.3 and touch 2.4.1 - build failed HOT 16
- Sencha 2 Routing with Deft JS.. HOT 1
- DeftJS 8.0-9.1Promise/Deferred Memory Usage HOT 5
- Promises catching errors happening in the success method HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from deftjs.