我正在使用AngularJS 1.0.2 和jQuery 1.8.2,我试图让 AngularJS 将依赖项注入对象,就像它对控制器所做的那样。您可以在jsFiddle上找到一个基本示例,在那里您会找到两个控制器 (List
和NewItem
)、一个对象 ( Item
) 和一个带有服务的模块(分别命名为services
和communication
)。
我的问题是Item
:
var Item = function (name, price) {
var self = this;
self.name = name;
self.price = price;
self.pretty = function () {
return self.name + ": " + self.price;
};
};
在其中我需要在外面使用一些东西,假设我想要pretty
将属性格式化price
为货币感知字符串的方法:
self.pretty = function () {
return self.name + ": " + $filter("currency")(self.price);
};
但这不起作用,因为$filter
没有定义。(请注意,的用法$filter
只是一个例子,它可以是任何东西。)
并且修改var Item = function (name, price) {
为var Item = function ($filter, name, price) {
也不起作用,因为创建对象的不是 AngularJS(如控制器的情况),而是我。
那么,我怎样才能让 AngularJS 为我创建对象,或者让它解决我需要的依赖关系?
类似的东西,var item = angular.create(Item, $scope.name, $scope.price);
或者var item = new Item(angular.inject("filter"), $scope.name, $scope.price);
我认为...