可以用angularJS绑定函数结果吗?

时间:2014-03-27 23:31:49

标签: javascript angularjs

我有这个对象:

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}})

有可能吗?

做一些类似的事情会有一些技巧吗?

3 个答案:

答案 0 :(得分:4)

绝对!您可以创建一个对象并将其推送到$scope,就像其他任何东西一样。

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

app.controller("NameController", NameController);

然后将其绑定在UI中,就像这样:

<h3>{{boy.getInfo()}}</h3>

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

答案 1 :(得分:2)

您可以正常绑定$ scope函数

function MyController($scope){
    $scope.myfunc = function(){
        return "test";
    }
}

然后,在视图中

{{ myfunc() }}

答案 2 :(得分:1)

您可以执行以下操作:

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

    this.getInfo = function(){
        return this.name + ' ' + this.surname + ' (' +  this.age + ')';
    }
}
var boy = new Boy(n, s, a);

$scope.boy = function(){
  return boy.getInfo();
}

在你的模板中绑定{{boy()}}。