ember.js - 用于显示/编辑和创建的相同 Ember.JS 模板

标签 ember.js ember-router

我正在使用 Ember.JS 编写一个 CRUD 应用程序:

  • 显示“ Action ”列表;
  • 用户可以单击一个 Action 来显示它,或者单击一个按钮来创建一个新 Action 。

  • 我想使用相同的模板来显示/编辑现有模型对象并创建一个新模型。

    这是我使用的路由器代码。
    App = Ember.Application.create();
    
    App.Router.map(function() {
        this.resource('actions', {path: "/actions"}, function() {
            this.resource('action', {path: '/:action_id'});
            this.route('new', {path: "/new"});
        });
    });
    
    App.IndexRoute = Ember.Route.extend({
        redirect: function() {
            this.transitionTo('actions');
        }   
    });
    
    App.ActionsIndexRoute = Ember.Route.extend({
        model: function () {
            return App.Action.find();
        }
    });
    
    App.ActionRoute = Ember.Route.extend({
        events: {
            submitSave: function () {
                this.get("store").commit();
            }
        }
    });
    
    App.ActionsNewRoute = Ember.Route.extend({
        renderTemplate: function () {
            this.render('action');
        },
    
        model: function() {
            var action = this.get('store').createRecord(App.Action);       
            return action;
         },
    
        events: {
            submitSave: function () {
                this.get("store").commit();
            }
        }
    });
    

    问题是当我第一次显示一个 Action ,然后回来创建一个新的时,看起来模板没有使用新创建的记录,而是使用之前显示的记录。

    我的解释是 Controller 和模板不同步。
    你会怎么做?
    也许有更简单的方法来实现这一目标?

    这是一个带有代码的 JSBin:http://jsbin.com/owiwak/10/edit

    最佳答案

    通过说 this.render('action') ,您不仅仅是告诉它使用 action模板,还有ActionController ,实际上您想要 action模板,但使用 ActionNewController .

    您需要覆盖:

    this.render('action', {
      controller: 'actions.new'
    });
    

    Updated JS Bin .

    关于ember.js - 用于显示/编辑和创建的相同 Ember.JS 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15200281/

    相关文章:

    ember.js - Ember 数据 isValid、isSaving 和 isError

    ember.js - YuiDocs外部数据链接使用

    javascript - Ember.js - 调用父模型 Hook 为子模型加载数据

    ember.js - Ember.js 中的 "Dynamic segment"?

    ember.js - 使用 Ember 路由器 v2 进入和退出模态状态的正确方法是什么?

    ember.js - 路由转换会破坏渲染的 View 对象; "Error: Object in path [blah] could not be found or was destroyed."

    ember.js - Emberjs 中止过渡并显示模态

    ember.js - 从父路由继承模型

    javascript - 从另一个组件重新渲染一个组件 Ember

    ember.js - 多次设置 sortProperties 后 Ember Computed.sort 失败