Vue.js:如何在异步组件中加载模板

时间:2017-07-25 19:34:36

标签: javascript vue.js

我是collect() method of the iterator的新手,我正在努力设置一个简单的网站。我有每个页面的组件(关于我们,联系我们等)。

这是我工作的起点

Vue.component('about-us', {
    template: '<div>...lots of markup...</div>'
});

我想将该代码转换为异步工作的代码。试图按照文档,这是我的代码:

Vue.component('about-us', function(resolve, reject){
    let template_string = '';

    // Load the template with ajax
    $.post(ajax_url, {'action': 'get_about_page'}, function(r){
        r = JSON.parse(r);

        // Save the template string
        if( r.success ) {
            template_string = r.data;
        }
    });

    // Resolve callback for Vue
    resolve({
        template: template_string
    });
});

我得到的错误是:

  

[Vue警告]:无法安装组件:模板或渲染功能   定义。发现于---&gt;匿名根

问题:我的方法有问题吗?这是语法问题吗?我不确定我是否走在正确的道路上。 (是的,我加载了jQuery)

2 个答案:

答案 0 :(得分:1)

您需要将您的决心转移到ajax回调中。

.primary-content

答案 1 :(得分:0)

我正在使用这种结构_

Vue.component('about-us', function (resolve, reject) {
  $.post('ajax_url', {'action': 'get_about_page'}, 'html')
   .done(function (data) {
     resolve({template: data})
   })
})