获取record.js中的字段值

时间:2014-03-20 15:34:03

标签: sugarcrm

我通过在custom / modules / myModule / clients / base / views / record / record.js中创建此文件record.js来覆盖记录视图。我想得到当前对象的字段值,我使用this.model.get(' duration'),但我什么都没得到。唯一可用的字段是" id" 。如何检索其他文件的值?

2 个答案:

答案 0 :(得分:1)

当最初调用record.js脚本时,模型将不会完全加载,因此唯一可用的字段是id。

你最好的选择可能是覆盖_renderHtml函数;在渲染视图时,所有模型细节都将完全加载:

_renderHtml: function() {
    // custom code involving this.model.get('duration')

    // call parent
    app.view.View.prototype._renderHtml.call(this);
}

请注意,在模型完全加载之前,您可能会发现多次调用_renderHtml。这只是Sugar的一个怪癖,因此最好在代码中添加一个检查:

if (this.model.get('duration')) {
    // custom code involving this.model.get('duration')
}

答案 1 :(得分:0)

不要忘记,当您的字段已在详细视图中显示时,app.model.get('myfield')仅提供正确的内容(来自此字段) - 否则您将获得“未定义”!

所以你

  1. 必须打电话给剩下的api(rest / v10 / yourmodel / yourid) - 比你 拥有所有可用的值
  2. 显示您的字段(即使您不想),以便能够在app.model.get('yourfield')中使用它,您可以使用$('div [data-name="yourfield"]').hide();
  3. 附加您的record.js(渲染后)

    我知道这个问题已经很老了(但如果其他人遇到这个问题,他会发现这个问题很有用)。