5

これは私のUsers.modelです:

module.exports = {

    attributes: {

        name: {
            type: 'string',
            required: true,
            minLength: 3,
            maxLength: 30
        },

        username: {
            type: 'string',
            required: true,
        },

        toJSON: function() {
          var obj = this.toObject();
          obj.link = sails.config.globals.baseUrl + sails.config.routes.user + obj.id;
          return obj;
        }
    }
  };

私が望むのは、モデルで計算された「事前」の属性を使用することです。私の解決策は、 toJSON() 関数で attr を注入することでしたが、使用する必要があるビューで:

<%= users.toJSON().link %> 

ユーザーに属性またはいくつかのメソッドを作成する方法はありますか? お気に入り:

module.exports = {

       attributes: {

        name: {
            type: 'string',
            required: true,
            minLength: 3,
            maxLength: 30
        },
        myPersonalAttribute: function(){
           return "Value"   
        }
}
4

2 に答える 2

2

属性メソッドを使用して派生値を返すことができます。ここであなたの github の問題に対する私の回答を参照してください: https://github.com/balderdashy/waterline/issues/626#issuecomment-54192398

于 2014-09-02T18:47:00.107 に答える
0
module.exports = {

    attributes: {

        name: {
            type: 'string',
            required: true,
            minLength: 3,
            maxLength: 30
        },

        myPersonalAttribute: function() {
            return "Value"
        },

        toJSON: function() {
            var obj = this.toObject()
            obj.myPersonalAttribute = this.myPersonalAttribute()
            return obj
        }
    }
}
于 2016-11-23T11:52:50.153 に答える