JavaScript MVC 框架:Ity

jopen 9年前發布 | 10K 次閱讀 Ity JavaScript開發

Ity 是一個小型的無依賴的 JavaScript MVC 框架。

App

  • App.getView(id) - returns Ity.View instance by id
  • App.addView(view) - add Ity.View instance to internal views array
  • App.removeView(id) - remove Ity.View instance from internal views array by id
  • App.trigger(evtName, data) -- trigger event by name on Application level. Optionally pass data

Model

  • Model.initialize(options) - called on instatiation of Model instances, optional options hash can be passed
  • Model.get("someDataPoint") - get value from internal data object hash by key
  • Model.set("someDataPoint", ) - set value of internal data object by key
  • Model.unSet("someDataPoint") - clear out valye of interanl data objecy by key
  • Model.clear() - clear entire internal data objecy
  • Model.on("eventName", ) - listen to Model instance events and call callback function
  • Model.sync(options) - sync data in internal data object. Optionally pass options hash for url, type, success, error
  • Model.trigger("eventName", ) - trigger event by name on Model instance and optionally pass data

View

  • View.initialize(options) - called on instatiation of View instances, optional options hash can be passed
  • View.getName() - return name attribute of view.
  • View.get() - return attribute of view by key String
  • View.set(, ) - set attribute of view to passed value
  • View.on("eventName", ) - listen to View instance events and call callback function
  • View.remove() - Remove internal el element and remove view from app
  • View.trigger("eventName", ) - trigger event by name on View instance and optionally pass data
  • View.select() - select DOM elements within set el object.

示例代碼:

var myApp = new Ity.Application();
var myModel = new Ity.Model();
var myView = new Ity.View({
    el: '.someElement',
    app: myApp,
    model: myModel,
    events: {
        ".btn" : {
            "click": "onBtnClick",
            "hover": "onBtnHover"
        },
        ".fancyBtn" : {
            "click": "onFancyBtnClick",
            "focus": "onFancyBtnFocus"
        }
    },

    initialize: function(options) {
        this.model.on("change", this.render, this);
    },

    render: function() {
        this.select(".myContainer").html(this.model.get("someData"));
    },

    onBtnClick: function(evt) {
        var output = this.select("#difWithId").find(".output");

        output.html("<div><p>Click!</p></div>")
    }

    //... more click, hover, focus events from events hash 
});

項目主頁:http://www.baiduhome.net/lib/view/home/1432257274536

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!