myApp.factory('ResulSet',function() {
function ResultSetInstance(dataSet) {
this.filter = function(){
// ...
}
}
return {
createNew: function(dataSet) {
return new ResultSetInstance(dataSet);
}
};
});
接着
myApp.controller('pageCtrl',function(ResultSet) {
var someData = ...;
var rs = ResultSet.createNew(someData);
}
编辑(来自问题提问者)
在进一步尝试的时候,我发现你甚至不需要使用createNew方法.
myApp.factory('ResultSetClass',function() {
ResultSetClass = function(dataSet) {
this.filter = function(){
// ...
}
}
return ResultSetClass
});
工作很好,然后你可以调用新的ResultSetClass(args).
注意使用Coffeescript的人
Coffeescript将返回您的类实例中的最后一个变量或方法,因此如果使用coffeescript(作为一般规则),则必须在类定义的末尾返回此变量或方法
myApp.factory 'ResultSetClass',() ->
ResultSetClass = (dataset) ->
this.filter = () ->
# do some stuff
return this
return ResultSetClass
如果你不明确地返回,那么你会发现你打电话时
myApp.factory 'ResultSetClass',() ->
ResultSetClass = (dataset) ->
this.filter = () ->
# do some stuff
那么你将只剩下coffeescript返回的最后一个过滤方法.