0

さまざまなユーザー グループを表示したいページがあります。これまでのところ、UsersController (ArrayController) のグループを次のようにフィルタリングしています。

users_controller.js.coffee:

App.UsersController = Ember.ArrayController.extend
  content: []

  group1: (->
    @get('model').filterProperty('role', "group1")
  ).property('model.@each.type')

  group2: (->
    @get('model').filterProperty('role', "group2")
  ).property('model.@each.type')

  group3: (->
    @get('model').filterProperty('role', "group3")
  ).property('model.@each.type')

ユーザー テンプレートの各グループを次のように (Emblem.js を使用して) ループすることができます。

ユーザーのエンブレム

.role
  h3 Group 1
  each user in group1
    .segment
      = link-to 'user' user | #{user.first} #{user.last}
      p
        span #{user.shortStory}

.role
  h3 Group 2
  = each user in group2
    .segment
      = link-to 'user' user | #{user.first} #{user.last}
      p
        span #{user.shortStory}

.role
  h3 Group 3
  = each user in group3
    .segment
      = link-to 'user' user | #{user.first} #{user.last}
      p
        span #{user.shortStory}

各ユーザーのモデルには「ストーリー」があります。UserController には、100 文字程度のスニペットに短縮する shortStory というメソッドがあります。(次のコードを参照)

user_controller.js.coffee

App.UserController = Ember.ObjectController.extend
  shortStory: (->
    short = @get('story').substring(0, 100)
    for i in short by - 1
      if i == " "
        break
      else
        short = short.slice( 0, -1)
    short
  ).property('story')

私の問題は、ショートストーリーをどのユーザーにも表示できないことです。次のようなさまざまな構文を試しました。

span= user.shortStory
span #{user.shortStory}
span= shortStory
span= #{user.shortStory}

ビューでUsersControllerフィルターメソッドをループしながらUserControllerメソッドにアクセスする方法を誰かが知っていれば、それは素晴らしいことです。

そもそもデータをフィルタリングするための他の提案も受け付けています。私はまだ残り火にかなり新鮮です。

4

1 に答える 1

0

この質問に対する答えを見つけました。各ループに itemController="user" を追加できました。これはうまくいきました。

于 2013-10-14T18:59:29.290 に答える