Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Ember的子路由中禁用父模板中的按钮?_Javascript_Ember.js - Fatal编程技术网

Javascript 如何在Ember的子路由中禁用父模板中的按钮?

Javascript 如何在Ember的子路由中禁用父模板中的按钮?,javascript,ember.js,Javascript,Ember.js,我正在创建一个简单的用户CRUD页面(基于:),允许编辑、创建和删除用户。添加编辑功能后,我注意到编辑按钮在编辑过程中不会被禁用或删除,我想添加此功能 但是,我似乎无法想出解决方案,因为编辑按钮位于父模板中(usertemplate,而我位于user.edit) 我得到的最接近的方法是将UserController中的editMode属性设置为true,并将UserEditController中的save操作中的该属性设置为false。在我按下后退按钮或更改url之前,它工作得很好 我还尝试了其

我正在创建一个简单的用户CRUD页面(基于:),允许编辑、创建和删除用户。添加编辑功能后,我注意到编辑按钮在编辑过程中不会被禁用或删除,我想添加此功能

但是,我似乎无法想出解决方案,因为编辑按钮位于父模板中(
user
template,而我位于
user.edit

我得到的最接近的方法是将
UserController
中的
editMode
属性设置为true,并将
UserEditController
中的
save
操作中的该属性设置为false。在我按下后退按钮或更改url之前,它工作得很好

我还尝试了其他解决方案,比如让
editMode
属性在第一个控制器中为true,在另一个控制器中为false,但模板似乎无法识别这一点

以下是我的代码,没有上述解决方案:

路由器

App.Router.map(function() {
    this.resource('users', function() {
        this.resource('user', { path: '/:user_id'}, function() {
            this.route('edit');
        });
        this.route('create');
    });
});
使用者

用户编辑控制器

App.UserController = Ember.ObjectController.extend({

    deleteMode: false,

    actions: {
        edit: function() {
            this.transitionToRoute('user.edit');
        }
    }
})
App.UserEditController = Ember.ObjectController.extend({

    needs: ['user'],

    actions: {
        save: function(){
          var user = this.get('model');
          // this will tell Ember-Data to save/persist the new record
          user.save();

          // then transition to the current user
          this.transitionToRoute('user', user);
        }
    }
});

您可以在每个路由()的激活/停用挂钩中设置控制器属性。如果你设置了,人们会更容易地帮助你。谢谢你的提示。我将为此问题设置一个emberjs.jsbin.com。
App.UserEditController = Ember.ObjectController.extend({

    needs: ['user'],

    actions: {
        save: function(){
          var user = this.get('model');
          // this will tell Ember-Data to save/persist the new record
          user.save();

          // then transition to the current user
          this.transitionToRoute('user', user);
        }
    }
});