【问题标题】:Main Backbone view not showing主骨干视图未显示
【发布时间】:2013-08-10 17:11:02
【问题描述】:

我正在尝试制作一个简单的 Backbone 网络应用程序。我正在使用 require 来管理我的所有依赖项。我的html很简单:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="./css/todos.css">
    <title>Clinical Auth</title>
    <script type="text/javascript" src="js/lib/require-2.1.1.js" data-main="js/app"></script>
  </head>
  <body>
    <div id="container"></div>
  </body>
</html>

我的 app.js 只是一个调用我的 application.view.js 的路由器:

require([
    'backbone',
    'views/application.view'
  ], function(Backbone, app) {
  var Router = Backbone.Router.extend({
    routes: {
      "": "main"
    },

    main: function(){
      var appView = new app();
      appView.render();
    }
  });

  var router = new Router();
  Backbone.history.start();
});

如您所见,我在路线标题main 中启动我的应用程序。我的 application.view.js 也很简单。

define(function(require) {
  "use strict";

   var Backbone = require('backbone');
   var $  = require('jquery');
   var AppView = Backbone.View.extend({
    el:  $('#container'),
    render: function() {
      $(this.el).append("<div>hello world</div>");
      return this;
    }
  });

  return AppView;
});

另外,这是我的 require.config 文件:

require.config({
  baseUrl: "./js/",
  paths: {
    jquery: 'lib/jquery-1.8.2',
    underscore: 'lib/underscore-1.4.2',
    backbone: 'lib/backbone-0.9.2',
    'backbone.localStorage': 'lib/backbone.localStorage'
  },
  shim: {
    underscore: {
      exports: "_"
    },
    backbone: {
      deps: ['underscore', 'jquery'],
      exports: 'Backbone'
    },
    'backbone.localStorage': {
      deps: ['backbone'],
      exports: 'Backbone'
    }
  }
});

当我在主路由中设置断点时,我可以看到 container 正在被操纵,但它从未出现在我的屏幕上。我究竟做错了什么?我知道这会很简单,但我正在拔头发。

【问题讨论】:

  • el 传递给您的AppView 怎么样,例如var app = new app({el: $('#container')})
  • 可能是时间问题,为什么不改用el: '#container'
  • require 剥离 jsfiddle.net/sushanth009/VLf65 工作正常
  • 就像mu 说我将其更改为el: '#container',因为这是正确的做法。我也尝试了Jack 的想法,但我仍然得到相同的结果。
  • 在您编写的代码中没有什么复杂的东西会阻止视图呈现。您是否在控制台中看到任何错误。如果可能,也发布require.config 文件

标签: javascript backbone.js require


【解决方案1】:

这段代码没有问题。我有一个将container 元素显示属性设置为none 的css 文件。很抱歉浪费大家的时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多