我有这个对象:
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}})
有可能吗?
做一些类似的事情会有一些技巧吗?
答案 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()}}。