ember.js - 在 View 中显示 emberjs 计算属性

标签 ember.js handlebars.js

我在 View 中显示计算属性时遇到问题

我学习 EmberJS 还不到一周。不同的教程有不同的编码风格,很困惑,所以我关注http://coding.smashingmagazine.com/2013/11/07/an-in-depth-introduction-to-ember-js/
我在 stackoverflow 上看到了一些类似的帖子,但代码太复杂了,我无法理解,而且我的问题非常基本,我见过的帖子都没有简单的答案。

这是我的“用户” Handlebars 模板。它是用index.html编写的。我只放置 Handlebars 脚本部分。

<script type="text/x-handlebars" id="users">
    <div>

    <ul class="users-listing">
        {{#each user in controller}}
            <li>{{user.name}} ..... {{user.id}} ..... {{user.NameWithId}}</li>
        {{else}}
            <li>no users… :-(</li>
        {{/each}}
    </ul>

    Total users: {{usersCount}}

    </div>


</script>

这是我的模型

App.ApplicationAdapter = DS.FixtureAdapter;

App.User = DS.Model.extend({
  name         : DS.attr(),
  email        : DS.attr(),
  bio          : DS.attr(),
  avatarUrl    : DS.attr(),
  creationDate : DS.attr()
});

这是我的 Controller

App.UsersController = Ember.ArrayController.extend({
  sortProperties: ['id'],
  sortAscending: true, // false = descending

  usersCount: function(){
    return this.get('model.length');
  }.property('@each'),

  NameWithId: function() {
    return this.get('id') + ' -> ' + this.get('name');
  }.property('id', 'name')
});

执行脚本后,我可以看到 ID 和名称,但在 NameWithId 的位置我得到只是空白 甚至我的 Firefox 网络控制台也什么也没显示

在我的模板中我改变了

user.NameWithId

user.get('NameWithId')

现在我收到解析错误:期待“ID”,得到“无效”


使用:
jQuery 1.10.2
Handlebars 1.0.0
Ember 1.0.0
EmberData 1.0.0-beta3

最佳答案

您可以像 Sevenseacat 所说的那样将其放置在模型上,或者您可以使用 itemController,它将用 Controller 包装数组中的每个项目,这就是您放置此属性的位置。

App.UsersController = Ember.ArrayController.extend({
   itemController: 'user'
})

App.UserController = Ember.ObjectController.extend({
  NameWithId: function() {
    return this.get('id') + ' -> ' + this.get('name');
  }.property('id', 'name')
});

关于ember.js - 在 View 中显示 emberjs 计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20208945/

相关文章:

javascript - Handlebars 模板从深层访问父对象

javascript - 从 Handlebars 助手中的模板获取值

javascript - 从 ember.js 中的内部函数创建 View 时访问对象内容

javascript - 具有元素属性的 Handlebars 插值?

javascript - 如何通过实时重新加载将西兰花插件添加到 ember-cli 应用程序?

javascript - Ember 内联如果给出错误 TypeError : options. 模板未定义

ember.js - 了解用于重定向的 Ember Route Hook

ruby-on-rails-3 - 单独的 REST JSON API 服务器和客户端?

javascript - 有什么方法可以将一个辅助函数的返回值作为 Handlebars 中的参数传递给另一个辅助函数

javascript - 未捕获 传递的上下文对象多于路由的动态段 : post