我使用AngularJS 1.0.2與1.8.2 jQuery,我想有AngularJS依賴注入的對象,像它的控制器。你可以在jsFiddle找到一個基本的例子,在那裏你會發現兩個控制器(List
和NewItem
),一個對象(Item
)和一個服務模塊(分別命名爲services
和communication
)。有AngularJS依賴注入對象,如它已經確實爲控制器
我的問題是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);
我想......
這正是我所期待的。我*曾*查看過'$ injector'文檔頁面,但錯過了'實例化(類型,本地)'......唉...... – Albireo