加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS.传递服务作为指令的参数

发布时间:2020-12-17 07:39:25 所属栏目:安全 来源:网络整理
导读:我有自己的指令: form-wrapper 现在,该指令使用自己的内部控制器,使用一些服务(用户服务) 喜欢这个: directives.directive("formWrapper",['User',function(User) { return { ... controller: function($scope,$location,User) { $scope.fields = User.get
我有自己的指令:< form-wrapper>

现在,该指令使用自己的内部控制器,使用一些服务(用户服务)

喜欢这个:

directives.directive("formWrapper",['User',function(User) {
        return {
         ...        
         controller: function($scope,$location,User) {

                    $scope.fields = User.get( {id: "1"}  );              // GET
        ...

你可以看到:我使用硬编码的服务(用户).

问:我如何通过服务作为指令的参数?要这样使用:

Service = comesFromArgument
  $scope.fields = Service.get( {id: "1"} )

我想如果我将服务名称作为字符串(作为服务名称)传递给它将不会有帮助.传递参数通常发生在链接功能中,但不在控制器中.

更新(更多解释):

当使用directives.directive(“formWrapper”,[‘User’,function(User){名称’User’导致注入用户服务时),因为这是IoC如何在这里工作的方式,我猜,它知道这是一个服务但是如果我做到了:

< form-wrapper service =“User”> //这是我想要的

然后,“User”将只是一个字符串,而不是引用User服务.

您可以使用 angular’s $injector service为控制器中的字符串注入服务.

在HTML中:

<form-wrapper my-attr-with-service="User">
  ...
</form-wrapper>

在指令定义中:

controller: function ($scope,$element,$attrs,$injector) {
    var myService = $injector.get($attrs.myAttrWithService);
    // ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读