mirror of
https://github.com/sstent/node.git
synced 2026-01-27 15:41:43 +00:00
updated app
This commit is contained in:
35
node_modules/derby-examples/widgets/lib/app/ui/dropdown/index.js
generated
vendored
Normal file
35
node_modules/derby-examples/widgets/lib/app/ui/dropdown/index.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
// self is a scoped model underneath _$component.{uid}
|
||||
|
||||
// Components must export a create function, which only runs
|
||||
// in the browser
|
||||
exports.create = function(model, self, dom, elements) {
|
||||
var toggle = elements.toggle
|
||||
, menu = elements.menu
|
||||
, open = self.at('open')
|
||||
|
||||
// Listeners added inside of a component are removed when the
|
||||
// page is re-rendered client side
|
||||
dom.addListener(document.documentElement, 'click', function(e) {
|
||||
if (e.target === toggle || menu.contains(e.target)) return
|
||||
open.set(false)
|
||||
})
|
||||
|
||||
exports.clickToggle = function() {
|
||||
open.set(!open.get())
|
||||
}
|
||||
|
||||
exports.clickMenu = function(e) {
|
||||
var item = model.at(e.target)
|
||||
, value = item.get().text
|
||||
open.set(false)
|
||||
if (value != null) {
|
||||
self.set('value', value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Components may export an init function, which runs on both
|
||||
// the server and browser before rendering
|
||||
exports.init = function(model, self) {
|
||||
self.setNull('value', self.get('items.0.text'))
|
||||
}
|
||||
Reference in New Issue
Block a user