Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于更改视图的角度JS指令参数_Javascript_Angularjs - Fatal编程技术网

Javascript 用于更改视图的角度JS指令参数

Javascript 用于更改视图的角度JS指令参数,javascript,angularjs,Javascript,Angularjs,我有一个指令,我需要给她一个设置,以根据这个参数更改我的视图 <ta-card type="unlock" class="parent-card" owner="currentUser" ng-repeat="unlockCard in unlockedCards" title="{{unlockCard.title}}"> </ta-card> 我的工厂 window.angular &a

我有一个指令,我需要给她一个设置,以根据这个参数更改我的视图

<ta-card type="unlock" 
         class="parent-card" 
         owner="currentUser" 
         ng-repeat="unlockCard in unlockedCards" 
         title="{{unlockCard.title}}">
</ta-card>
我的工厂

window.angular && (function(angular) {
    'use strict';
    angular.module('taApp')
        .factory('taUnlockCard', ['$q','$rootScope', function($q,$rootScope) {
            // JE RECUPERE LE TITRE DE LA CARTE ???
            $rootScope.title="Titre";
            return {

            };
        }]);
})(window.angular); // jshint ignore:line

请提供您的指令代码好吗?而且我也没有遇到问题,您想将currentUser传递给您的指令,并根据此用户呈现不同的内容?我有不同的解锁卡(4),如果在我看来我选择了类似于title或unlockType的参数,我想更改卡中的标题您知道您可以访问指令中的元素属性吗?您可以执行
element.attr('title')=“新建标题”?好的,谢谢,我怎样才能在我的视图中访问此属性?我没有范围,只是我的工厂里有一个根范围如果你使用$rootScope(这很糟糕),你可以在你的视图中使用{{title}}
 .directive('taCard', ['appAuth', 'taCardService', '$rootScope', '$timeout',
   function (appAuth, taCardService, $rootScope, $timeout) {
     return {
       restrict: 'E', // cards must be always an element, by convention
       transclude: false,
       replace: true,
       scope: {
         owner: '=?', //this is going to be an User Object
         model: '=?',
         readonly: '=?', //this makes form fields readonly,
         transcludeData: '=?',
         childLoad: '@',
         unlockType: '@'
       },
       link: function (scope, element, attrs) {
         // console.log(scope.model);
         console.log(scope);
         scope.showFront = true;
         scope.displayChildCards = false;
         scope.elementId = 'card-' + parseInt(Math.random() * 100000000000);
         element.attr('id', scope.elementId);
         scope.isEditable = false;
         scope.options = taCardService.getOptions(attrs.type);
         // console.log(scope.options);
         scope.model = angular.isDefined(scope.model) ? scope.model : {};
         if (scope.options.hasOwner) {
           taCardService.hasAccess(scope.owner)
             .then(function (access){
               if (access === true) {
                 //set if is editable
                 appAuth.currentUser()
                   .then(function (currentUser) {
                     scope.currentUser = currentUser;
                     if (scope.owner.id === scope.currentUser.id) {
                       scope.isEditable = true;
                     }
                   });

               } else {
                 // destroy the card if user doesn't have acccess
                 element.remove();
                 scope.$destroy();
               }
             });
           }

           if (taCardService.hasService(attrs.type)) {
             taCardService.onLoad(attrs.type, scope, element);
             taCardService.setEvents(attrs.type, scope);
             scope.service = taCardService.getService(attrs.type);
           }

           // get the model data
          if (taCardService.hasService(attrs.type)) {
            taCardService.getModel(attrs.type, scope)
              .then(function (data) {
                scope.model.data = data.model;
              },
              function (error) {
                console.log('impossible to get the model: status ' + error.status);
              });
            }

            if (!angular.isDefined(scope.owner) && scope.options.hasOwner) {
              // alert to the sleepy developer that must pass the owner
              console.log('hey! you forgot the owner!');
              return;
            }
          }
        }
      }
  ])
window.angular && (function(angular) {
    'use strict';
    angular.module('taApp')
        .factory('taUnlockCard', ['$q','$rootScope', function($q,$rootScope) {
            // JE RECUPERE LE TITRE DE LA CARTE ???
            $rootScope.title="Titre";
            return {

            };
        }]);
})(window.angular); // jshint ignore:line