MCUT_Supervisor/bs_demo/backbone/scripts/views/app.js
2025-03-26 10:38:33 +08:00

71 lines
1.8 KiB
JavaScript

/*global define*/
define([
'baja!',
'jquery',
'underscore',
'backbone',
'models/model',
'collections/folders',
'views/points',
'hbs!templates/folders'
], function (baja, $, _, Backbone, Folder, Folders, PointListView, Template) {
'use strict';
// Our overall **AppView** is the top-level piece of UI.
var AppView = Backbone.View.extend({
// binded to the existing skeleton of the App already present in the HTML.
el: 'div#content',
events: {
'click ul#folders>li': 'listPoints'
},
initialize: function () {
this.$folderList = this.$('#folders');
this.$pointList = this.$('#points');
// this.listenTo(Todos, 'add', this.addOne);
// this.listenTo(Todos, 'reset', this.addAll);
// this.listenTo(Todos, 'change:completed', this.filterOne);
// this.listenTo(Todos, 'filter', this.filterAll);
// this.listenTo(Todos, 'all', _.debounce(this.render, 0));
this.folders = new Folders();
var that = this;
// displays the folders under station:|slot:/poc
baja.Ord.make('station:|h:28cc')
.get()
.then(function(folder){
folder.getSlots().is('baja:Folder').eachValue(function(sf){
var model = new Folder()
model.set({ id:sf.getHandle(), name:sf.getName() });
that.folders.add(model);
});
that.render();
});
},
render: function () {
var content = '';
this.folders.each(function(folder) {
content += Template(folder.toJSON());
});
console.log(content);
this.$folderList.append(content);
},
listPoints: function (e) {
console.log('click item: ' + $(e.target).attr('id'));
this.trigger('folder:clicked');
}
});
return AppView;
});