【问题标题】:Ember.js - Controller not picking model dataEmber.js - 控制器不选择模型数据
【发布时间】:2017-01-30 02:11:21
【问题描述】:

我有一个有这个字段的模型

diaryItemLabel: DS.attr('string'),

我想访问控制器中该字段的数据。

Controller.js

我想用我从 diaryItemLabel 获得的任何数据替换 'Add'

我不能使用 this.get('model.diaryItemLabel')。它给了我 this.get() 不是一个函数。 我尝试使用 Ember.get('model', 'diaryItemLabel')。它给了我空字符串。

编辑 1:如果 model.diaryItemLabel 变量为空,则将默认设置为“添加”。

有人能指引我正确的方向吗?

谢谢

【问题讨论】:

    标签: ember.js ember-data ember-cli ember-model ember-controllers


    【解决方案1】:

    控制器只有在setupController钩子之后才会获得model属性,该钩子将在model钩子之后调用。

    在控制器中创建依赖于model.diaryItemLabel 的计算属性,该属性将返回您所需的对象

    confirm:Ember.computed('model.diaryItemLabel',function(){
     let temp = {};
     temp.accept= { text: Ember.isEmpty(this.get('model.diaryItemLabel')) ? 'Add' : this.get('model.diaryItemLabel'), buttonClass: 'btn btn-primary'};
     temp.reject = { text: 'cancel', buttonClass: 'btn btn-default'};
     return temp;
    }
    

    【讨论】:

    • 谢谢@kumkanillam
    • 您还可以告诉我如何将 temp.accept 文本默认设置为“添加”。所以如果model.diaryItemLabel 为空,则设置为'Add'
    • 用 isEmpty check 更新了答案。 emberjs.com/api/classes/Ember.html#method_isEmpty
    • 我觉得你的编辑比我的好,所以我就顺其自然吧。感谢您的时间和精力
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多