将Model属性方法发送到客户端Sails Angular

时间:2014-11-29 21:24:04

标签: javascript json angularjs sails.js waterline

是否有通过Http发送Model属性函数的技巧?

所以假设我有一个模型用户:

 attributes: {
     last_name : "string" ,  
     first_name: "string",
  name : function()
     {
        return this.first_name + " " + this.last_name;
     }
  }

控制器:

User.findOne( { id : 1}).exec(function(err,user) {
   res.view("profile", {user:user}); 
});

和观点:

<div> 
  <h4> hi <%= user.name() %>
</div>

一切都很完美。

但是如果我通过客户端加载数据: 控制器:

User.findOne( { id : 1}).exec(function(err,user) {
   res.json({user:user}); // or res.send({user: user});
});

并在客户端(Angular)中:

$http.get("/controller/method/").then(function(data){
$scope.user = data;
});

视图不能像以前一样容易做到:

<div>
 <h4> hi {{ user.name() }} </h4>
</div>

任何想法或解决方法?我试过覆盖模型的toJSON方法,但没有运气。我很欣赏这里的任何想法。

1 个答案:

答案 0 :(得分:1)

 attributes: {
     last_name : "string" ,  
     first_name: "string",
  name : function()
     {
        return this.first_name + " " + this.last_name;
     }
  },
    toJSON : function(){
      var obj = this.toObject();
      obj.name = this.first_name + " " + this.last_name;
      return obj;
    }