Ember.js如何添加不相关的内容(侧栏/页脚/模态)并传递ID

安德鲁

我正在工作一个相当简单的Emberjs应用程序。但是,我很难弄清楚一件。

这是一个针对客户的简单演示应用程序。当用户进入每个页面时,我正在制作不同的页面,并弹出一个模式对话框。我正在使用灯具适配器,并具有指定为灯具的每个页面的模态内容。

我有要浏览的页面,有些页面有ID传递。我为每个页面定义了路由。

现在,我已经完成了所有的设置,我想通过将id传递给url将模式添加到页面。似乎我不必在每个资源中都指定一个模态路由。

例如:

这是我必须开始的代码:

    this.resource('test', {path: '/test'}, function() {
        this.resource('question', { path: '/:test_id'});
    });
    this.resource('home', {path: '/home'});

当我想添加模态时,似乎需要做这样的事情,但是将模态添加为通往我拥有的每个资源的途径似乎并不正确。然后,我还将拥有大量的模板/控制器等。

    this.resource('test', {path: '/test'}, function() {
        this.resource('question', { path: '/:test_id'}, function() {
            this.route('modal', {path: '/modal/:modal_id'});
        });
    });
    this.resource('home', {path: '/home'}, function() {
        this.route('modal', {path: '/modal/:modal_id'});
    });

这可能是因为我是Emberjs的新手,但是我还没有看到任何可为页面上不相关的动态内容提供替代方法的东西。

任何帮助表示赞赏。

埃杜

您可以在您的申请路线中设置此操作

App.ApplicationRoute = App.Route.extend({
  actions: {
    showModal: function() {
      this.render('modal', {
        outlet: 'modal',
        into: 'application'
      });
    },
    hideModal: function() {
      this.disconnectOutlet({
        outlet: 'modal',
        parentView: 'application'
      });
    }
  }
});

然后,您可以将查询参数与其他Route上的setupController结合使用

this.resource('test', {path: '/test'}, function() {
    this.resource('question', { path: '/:test_id',queryParams: ['modalId']});
});

问题路径应该是这样的

App.QuestionRoute = App.Route.extend({
    setupController:function(controller,model,queryParams){
        controller.set('model',model);
        if(queryParams.modalId){
            var modalModel;
            //Set your modal model, here you have access to the store, etc
            this.controllerFor('modal').set('model', modalModel);
            this.send('showModal')
        }
        else{
            this.controllerFor('modal').set('model', null);
            this.send('hideModal');
        }
    }
});

注意:queryparams是您应该激活http://emberjs.com/guides/configuring-ember/feature-flags/的可选功能

您可以使用链接到帮助器,以及transitionTo ...

链接至示例,用于打开ID为1的模态

{{#linkTo modelId=1}}modal 1{{/linkTo}}

收盘

{{#linkTo modelId=false}}Close modal{{/linkTo}}

有关查询参数的更多信息https://github.com/emberjs/ember.js/pull/3182

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ember.js如何添加不相关的内容(侧栏/页脚/模态)并传递ID

来自分类Dev

(Ember.js)如何在不相关的资源/路由之间共享模型数据?

来自分类Dev

Ember.js ember-plupload拖放

来自分类Dev

Ember.js ember-plupload拖放

来自分类Dev

Ember JS深度链接

来自分类Dev

从Ember中的模态提交表单

来自分类Dev

模态中的Ember模型属性

来自分类Dev

如何在ember js中添加类

来自分类Dev

阻止Ember获取相关模型

来自分类Dev

阻止Ember获取相关模型

来自分类Dev

Ember JS:如何在调用时重用 ember 数据?

来自分类Dev

Ember.js如何生成ID?

来自分类Dev

以“ Ember”方式渲染侧边栏

来自分类Dev

Ember.Select内容与contentBinding

来自分类Dev

Ember.js:如何在模态弹出窗口中显示模板上模型的当前内容

来自分类Dev

Ember.js:直接加载相关模型

来自分类Dev

如何从ember-CLI判断ember.js和ember-data版本?

来自分类Dev

Ember,Ember Data,MongoDB _id和名称空间

来自分类Dev

Ember.js-Ember数据未返回模型

来自分类Dev

在Ember,Ember-CLI中使用moment.js

来自分类Dev

Ember.js-ember-pikaday不允许预设日期

来自分类Dev

基于Ember.Select更改的Ember.js路由

来自分类Dev

无法使用Ember筛选模型。在Ember.js中选择

来自分类Dev

ember.js,rails,rails-ember,rabl

来自分类Dev

使用ember_data代替ember_model.js

来自分类Dev

在Ember中启动Foundation JS(使用ember-cli)

来自分类Dev

ember.js,ember-cli:插座未正确嵌套

来自分类Dev

Ember Js、Ember-Highcharts 不更新对 chartData 的更改

来自分类Dev

安装Ember.js 2.2