2017-07-03 210 views
0

我嘗試注入一個依賴到一個控制器。我曾嘗試通過數組傳遞依賴關係,通過內聯匿名函數並使用controller。$ inject。沒有任何工作,我準備爆炸。angularjs:如何注入依賴到一個控制器

大多數提及依賴注入的博客和文章展示了一個簡單的例子,其中代碼通過了$ scope和依賴關係....但是當我嘗試複製代碼示例時,什麼都不起作用。

有一些我錯過了。我是否必須實例化依賴項,或者如何傳遞依賴項?

var myApp = angular.module('myApp', []); 

function MyViewModel() { 
    this.theRightAnswer = 'The answer is 42'; 
} 

myApp.controller('myController', ['$scope', 'MyViewModel', function ($scope, MyViewModel) { 
     $scope.theAnswer = MyViewModel.theRightAnswer; 
    }]); 

回答

0

使用任一服務/工廠/供應商爲,&然後通過依賴注入,你可以分享在不同的控制器功能。在代碼&中添加以下行,它將按預期工作。

myApp.service('MyViewModel', MyViewModel); 

http://plnkr.co/edit/7ZclGB93Soq5Ce8pFmkQ?p=preview

+0

我需要的基於你的建議:-) 我嘗試使用工廠。有效。 但什麼是最佳實踐,服務或工廠? – user3222976

+0

https://toddmotto.com/factory-versus-service根據情況使用。但是,即使工廠提供了更多一點,但最有可能使用服務。在打字稿方式和最近版本的角度(v2,v4)中,他們只喜歡服務。 – Shantanu