作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
学习 spine.js 我毫无问题地完成了两个教程,看起来是一个很棒的框架,但是这个简单的小问题让我抓狂,因为我不知道我能做些什么来解决它......
根据我的理解,.eco 模板(由 hem 编译)应该可以访问变量 @list,但事实并非如此,有没有其他人遇到过这个?
谁能告诉我哪里出错了?
用户.咖啡
Spine = require('spine')
User = require('models/user')
$ = Spine.$
class Show extends Spine.Controller
className: 'UserApp'
events:
'click .NewUser' : 'new'
constructor: ->
super
User.bind('create refresh change', @render)
@active @render
render: =>
#get all users and render list
@list= [1,2,3,4,5]
console.log(@list)
@html require('views/UserApp')(@list)
new: ->
@navigate('/users','create')
UserApp.eco
<% if @list.length: %>
<% for i in @list: %>
<%= i %>
<% end %>
<% else: %>
Why you no work!?
<% end %>
最佳答案
@html require('views/UserApp')()
期望一个散列对象作为参数。所以,如果你想在你的 View 中使用一个 @list
变量(我指的是 Rails),你必须执行如下操作:
@html require('views/UserApp')(list: @list)
其中键将是 View 中变量的名称。所以使用:
@html require('views/UserApp')(@list)
就像你正在做的那样,会将 @list
变量作为当前的 @
或 this
引入 View ,在你的 View 中你应该能够以下列方式使用它:
<% if @.length: %>
<% for i in @: %>
<%= i %>
<% end %>
<% else: %>
Why you no work!?
<% end %>
但它的可读性不强。
关于javascript - 使用 Hem : "Cannot read property ' length' of undefined"的 Spine JS 错误渲染 .eco 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9054945/
我刚开始使用 Spine,打算使用 Hem 的默认实现。我基本上是在运行“hello world”todo 示例应用程序,但试图替代服务器后端而不是本地存储。 但是当我从 hem 运行应用程序时,出现
学习 spine.js 我毫无问题地完成了两个教程,看起来是一个很棒的框架,但是这个简单的小问题让我抓狂,因为我不知道我能做些什么来解决它...... 根据我的理解,.eco 模板(由 hem 编译)
我是一名优秀的程序员,十分优秀!