主干和Ajax请求未定义

主干和Ajax请求未定义,ajax,json,backbone.js,Ajax,Json,Backbone.js,我需要获得一些值(这里是菱形),所以我进行ajax调用,但问题是视图将该值渲染为“未定义” 我的视图代码摘录如下: UserView.prototype.initialize = function() { var self; console.log("Test000"); self = this; $.ajax({ url: "http://test.redhand.com.pl/lampy/api/filter",

我需要获得一些值(这里是菱形),所以我进行ajax调用,但问题是视图将该值渲染为“未定义” 我的视图代码摘录如下:

UserView.prototype.initialize = function() {
      var self;
      console.log("Test000");
      self = this;
      $.ajax({
        url: "http://test.redhand.com.pl/lampy/api/filter",
        type: "GET",
        dataType: "json",
        success: function(data) {
          console.log(data);
          self.rhOptions = data.rhOptions.tel;
        }
      });
      console.log(this.rhOptions);
      this.listenTo(this.model, 'change invalid', this.render);
      this.render();
      return this.serverValidation = {};
    };

    UserView.prototype.render = function() {
      var firstInput, user;
      user = this.model.toJSON();
      user.error = this.model.validationError || {};
      _.extend(user.error, this.serverValidation);
      this.template(this.model.config('tpl'), {
        user: user,
        rhOptions: this.rhOptions
      });
      this.$('form').attr('novalidate', 'novalidate');
      firstInput = this.$('input[required][value=""]:first');
      _.defer(function() {
        if (!firstInput.val()) {
          return firstInput.select();
        }
      });
      return this;
    };

我尝试在视图中使用rhOptions值,但在获取JSOn文件之前,视图似乎已呈现,如何修复它?

试试这个,我还没有测试它。将render函数移到ajax调用的success回调中,以便获取加载的数据

success: function(data) {
    console.log(data);
    self.rhOptions = data.rhOptions.tel;
    console.log(self.rhOptions);
    self.listenTo(self.model, 'change invalid', self.render);
    self.render();
}

这对我帮助很大!