簡體   English   中英

綁定Backbone.js和Underscore.js中的回調

[英]Binding a callback in Backbone.js and Underscore.js

我有以下代碼:

  initialize: function() {
    _.bindAll(this);

    var callBack = function(res) {
      window.item = new Item(res);
      this.render();
    };

    _.bind(callBack, this);

    $.get('/item/parse', {
      uri: decodeURIComponent($.urlParam('uri')),
      title: decodeURIComponent($.urlParam('title'))
    },
      callBack
    );
  },

目的是在$ .get函數完成后調用render()。 但是,即使將回調函數與_.bind綁定后,我仍然在控制台中得到“對象沒有函數渲染”。 我在這里使用綁定不正確嗎?

_.bind返回一個新函數,所以:

callBack = _.bind(callBack, this);

您也可以使用_.bindAll ,但必須定義函數調用它。 否則,在您調用_.bindAll時沒有任何功能。 請注意,在這種情況下,您必須使用this.callBack = ... ,否則this將不包含任何函數。

同時使用_.bind_.bindAll是多余的。

我通常在我的模型上寫一個'load'方法,我把它作為參數回調。 然后我從視圖中的render()方法調用此方法,並在回調函數中執行我需要做的任何事情(當然,在加載數據后在模型中觸發該回調)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM