【问题标题】:sending Model attribute methods to client Sails Angular向客户端 Sails Angular 发送模型属性方法
【发布时间】:2014-11-29 21:24:03
【问题描述】:

通过 Http gets 发送 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 方法,但没有运气。会很感激这里的任何想法。

【问题讨论】:

    标签: javascript json angularjs sails.js waterline


    【解决方案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;
        }
    

    【讨论】:

    • ok 一开始听起来是合法的,但它并没有真正与我合作。我不认为这个函数真的被调用了,我在里面添加了一个控制台日志语句,调用它什么也没有。你之前测试过吗?
    • 好的,toJSON 是一个属性函数,它必须在属性对象中。我也不能发送函数
    • 我的例子是在属性对象上?此方法有效,经过全面测试。
    猜你喜欢
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    相关资源
    最近更新 更多