Ember加载模板与ajax飞行

时间:2014-08-19 11:47:31

标签: javascript jquery ajax ember.js

我想根据需要从另一个html文件加载html,代码如下:

App.MainView = Ember.View.extend({
  template:function(){
    $.ajax({
       url: 'views/main.html',
       dataType: 'text',
       async: false,
       success: function (res) {
         returnnow(res);
       }
    });
    function returnnow(res){
      return Ember.Handlebars.compile(res);
    }
  }
});

但它什么也没有返回..可能是发给了ajax的异步字符。

我不能用Ajax包装View,因为我首先要在调用视图时加载它。

任何想法如何执行此操作?

1 个答案:

答案 0 :(得分:2)

你没有得到任何东西,因为你的template函数没有返回任何内容。您需要像这样更改代码:

App.MainView = Ember.View.extend({
    template: function(){
       var result;
       $.ajax({
            url: 'views/main.html',
            success: function(data) {
                result = Ember.Handlebars.compile(data);
            }
       });
       return result;
    }
});