首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >backbone.js不使用konacha呈现视图

backbone.js不使用konacha呈现视图
EN

Stack Overflow用户
提问于 2013-01-31 04:15:10
回答 1查看 487关注 0票数 1

我想用konacha为我的backbone.js应用程序做一些DOM测试。我在下面读过一些关于科纳查的文章。

  • konacha.md
  • http://www.slideshare.net/markykang/testing-javascriptcoffeescript-with-mocha-and-chai

这些条目表明,我应该创建一个视图,并将其放在页面对象中,如下所示。

代码语言:javascript
复制
#= require spec_helper
describe "MyApp.Views.Relationships", ->
  beforeEach ->
  @view = new MyApp.Views.Relationships()
  @page.html(@view.el)
  console.log @view.el

问题:上面的代码中的但是console.log为@view.el显示了“未定义”,尽管这些代码在实践中工作得很好。

如果有人能帮我的话,我真的很高兴。

这是一些有兴趣的密码。

代码语言:javascript
复制
spec_helper.js.coffee
#= require application
#= require_tree ./support

mocha.ui('bdd')
mocha.ignoreLeaks()

beforeEach ->
  @page = $("#konacha")
  @sandbox = sinon.sandbox.create()

afterEach ->
  @sandbox.restore()
代码语言:javascript
复制
views/users/relationships.js.coffee
class MyApp.Views.Relationships extends Backbone.View

  el: '#relation-form'
  template: JST['users/relationships']

  initialize: ->
    console.log "init"
    @render()
    console.log @el


  render: ->
    @img = $('#loading-image').html()
    $(@el).html(@template({img: @img}))
    this
代码语言:javascript
复制
relationships.jst.eco
<button class="btn" disabled="disabled"><%- @img %></button>
代码语言:javascript
复制
profile.html.erb(extracted)
   #snip#
            <% if signed_in? and @user != current_user %>
              <div id="relation-form" class="action-button"></div>
            <% end %>
   #snip#
    <script type="text/template" id="loading-image">
      <%= image_tag('ajax-loader.gif') %>
    </script>
    <script type="text/javascript">
      $(function () {
        new MyApp.Views.Relationships()
      });
    </script>

我想对这些代码做的是处理跟踪按钮,像twitter。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-03-05 16:34:43

在规范本身中包含视图所需的模板。类似于:

代码语言:javascript
复制
#= require spec_helper
#= require templates/users/relationships

describe "MyApp.Views.Relationships", ->
    beforeEach ->
    @view = new MyApp.Views.Relationships()
    @page.html(@view.el)
    console.log @view.el

或者你的模板在哪里。

模板可能仍未定义。如果是这样的话,应用程序可能是在模板加载之前加载的。因此,如果是这样的话,您也可以在spec_helper中删除require应用程序,只需在每个规范中具体地包含您正在测试的比特。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14618370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档