0

次のテンプレートを使用して、すべてのテーブルを表示しますusers

<script type="text/x-handlebars" data-template-name="users">
  <table>
    {{#each model itemController="user"}}
      <tr>
        <td>{{lastName}}</td>
        <td>
          {{#if isNew}}
            <button {{action 'save' this}} class="btn btn-small">Save</button>
            <button {{action 'discard' this}} class="btn btn-small">Discard</button>
          {{else}}
            {{#linkTo 'user.edit' this activeClass="disabled" classNames="btn btn-small"}}Edit{{/linkTo}}
          {{/if}}
        </td>
      </tr>
    {{/each}}
  </table>
  {{#unless newUserCreate}}
    <p>
      {{#linkTo 'users.new' classNames="btn btn-small"}}Create a new user{{/linkTo}}
    </p>
  {{/unless}}
</script>

テーブルの下では、テーブル{{#unless newUserCreate}}内でも使用したい a を使用していますが、スコープが異なるため使用できません。次のスニペットを修正して機能させるにはどうすればよいですか? にはUserがありませんnewUserCreate。持っているだけUsersです。

{{#if isNew}}
  {{#unless newUserCreate}}
    <button {{action 'save' this}} class="btn btn-small">Save</button>
    <button {{action 'discard' this}} class="btn btn-small">Discard</button>
  {{/unless}}
{{else}}
  {{#linkTo 'user.edit' this activeClass="disabled" classNames="btn btn-small"}}Edit{{/linkTo}}
{{/if}}

app.js

App.UsersRoute = Ember.Route.extend({
  model: function() {
    return App.User.find();
  }
});

App.UsersNewRoute = Ember.Route.extend({
  model: function() {
    return App.User.createRecord();
  },

  renderTemplate: function() {
    this.render({ into: 'users' });
  },

  activate: function() {
    this.controllerFor('users').set('newUserCreate', true);
  },

  deactivate: function() {
    this.controllerFor('users').set('newUserCreate', false);
  }
});
4

0 に答える 0