我有这个对象:

function Boy(n,s,a)
{
    this.name = n;
    this.surname = s;
    this.age = a;

    this.getInfo = function(){
        return this.name + ' ' + this.surname + ' (' +  this.age + ')';
    }
}

我想做这样的事情:
{{ boy.getInfo() }}

而不是这样:
{{ boy.name }} {{ boy.surname }} ({{boy.age}})

可能吗?

有一些类似的技巧吗?

最佳答案

绝对!您可以像创建其他对象一样创建一个对象并将其推送到$scope中。

var NameController = function ($scope) {
   $scope.boy = new Boy("Foo", "Bar", 32);
};
NameController.$inject = ['$scope'];

app.controller("NameController", NameController);

然后将其绑定(bind)在UI中,如下所示:
<h3>{{boy.getInfo()}}</h3>

这是绑定(bind)到所有三个属性并查看函数结果的示例:http://jsfiddle.net/jwcarroll/Pb3Cu/

10-07 14:32