1

我正在使用最新版本的 Ember.js(目前是 4.0 之前的版本),并且我也在使用 RequireJS。渲染我的所有模板时出现问题。当所有模板都包含在单个 html 文件中的脚本标签中时,Ember 将找到并呈现我的所有模板。但是当我使用文本插件使用 requirejs 将它们分开时,它无法呈现任何内容,甚至显示任何错误。

main.js

(function(){

    window.App = Ember.Application.create({
        rootElement: '#wrapper',
        LOG_TRANSITIONS: true
    });

    requirejs.config({
        paths: {
            'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min',
        }, 

        // Use shim for plugins that does not support AMD
        shim: {

        },

    });

    window.compile = function(name, template) {
        return Ember.TEMPLATES[name] = Ember.Handlebars.compile(template);
    };

})();

define([
    'segmentation', 
    'text',

    // Controllers:
    'controllers/index',

    // Views:
    'views/index',

    // Routes:
    'routes/index',
    'router'
    ], function(Segmentation) {


    }
);

路由器.js

define([], function(){
    App.Router.map(function() {
        this.route("index", {
            path: "/"
        });
    });

    App.Router.reopen({
        location: 'history'
    });

});

路线/index.js

define([], function(){
    console.log(App);
    App.IndexRoute = Ember.Route.extend({
        setupController: function(controller) {
            console.log(1);
            // Set the IndexController's `title`
            controller.set('controller', this.container.lookup('controller:index'));
        },
        renderTemplate: function() {
            this.render('index');
        }
    });
});

最后是模板和视图:

应用程序视图

define([
    'text!templates/application.html'
    ], function(template){

    App.ApplicationView = Ember.View.extend({
        template: Ember.Handlebars.compile( template )
    });
});

申请模板

<center>
    <h1>HEADER</h1>
    <small>small</small>
</center>
<hr/>
<div id="content">{{outlet}}</div>

可能不需要所有这些代码转储,但以防有人要求。当我将模板包装在脚本标签中并将它们插入到 html 文件中时,一切都像魅力一样。

任何解决方案?

4

0 回答 0