2017-07-03 145 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