如何根据范围

时间:2016-02-20 14:42:45

标签: angularjs angularjs-directive angularjs-scope

我已经创建了一个带有隔离范围的指令,我希望该范围内的所有项在获得注入时获得服务的特定实现。我认为有几种方法可以完成等效,但想知道是否有更好的方法:

  • 根本不使用注入,而是将我想要的服务的特定实现分配给$ scope.myService,并让项目访问该成员以获取服务
  • 让项目通过$ scope到服务的方法,这会根据$ scope

    中的内容改变他们的行为

    我倾向于第一种选择。但似乎angular有能力根据$ scope注入不同的项目,因为它在注入$ scope本身时会这样做,而且我想知道我是否可以某种方式使用该机制。

1 个答案:

答案 0 :(得分:0)

根据您的要求,您必须使用$ controller服务动态创建控制器,并在作为第二个参数传递的对象中注入所需的服务。

$ controller('ControllerName',{})

您需要将新创建的控制器的实例附加到指令的范围,并将其与模板上的ng-controller指令一起使用。