2017-01-09 5 views
0

난이이 코드이 ERS-멀티 셀렉터에서발견은 방법에 대한 사용자 정의 지시어에 속성

case 'ROLES': 
      if(scope.ersProfileEditableFieldValue){ 
       scope.ersProfileSectionData[scope.field.code] = scope.ersProfileEditableFieldValue.map(function(val){return val.id}); 
      } 
      scope.initRoles(); 
      tpl ='<div ng-if ="roles.length>0">' 
       +'<ers-multi-selector ers-options="roles" on-change="test(message)"' 
       +' is-primary-selector="true" placeholder="Enter a Role" selected-options="ersProfileSectionData[field.code]">' 
       +' </ers-multi-selector></div>' 
       iAttrs.$observe('onChange', function(event, value){ 
        console.log("here"); 
        console.log(event); 
        console.log(value); 
       }) 
      console.log(scope); 
      console.log(iElement); 
      console.log(iAttrs); 
      break; 

정의 지시어 내가 어떻게 할 수있는 시험 방법이 속성에 변화 을 찾을 수있다 그 속성들을 찾아서 그렇게 할 수 있습니다.

이 플러그인의 일부 코드가 표시됩니다. 추가 정보를 custom-directive

에서

angular.module('ersMultiSelector',[]); 
angular.module('ersMultiSelector').directive('ersMultiSelector', function(){ 
return{ 
    scope: { 
     ersOptions: '=', 
     isPrimarySelector: '=', 
     placeholder: "@", 
     selectedOptions: '=', 
     onChange: '&' 
    }, 
    controllerAs: 'vm', 
    bindToController: true, 
    templateUrl: 'libs/planner/ers-multi-selector/template/multi-selector.html', 
    controller : [function(){ 
     var vm = this; 
     vm.addOption = function(toselect){ 
      vm.onChange({"message":"i am working"}); 
      toselect.isused = true; 
      vm.selectedOptions.push(toselect.id); 
      vm.selectedOptionsVirtual.push(getVoption(toselect.id, 
       toselect.name, vm.selectedOptions.length - 1, toselect)); 
      vm.selected = undefined; 
     } 


    }] 
} 
}); 
+0

사용'link' 아래의 링크에서 사용자 정의 지침의 링크 기능을 참조 ['pre/post' 메서드를 제공하는''compile'] (https://docs.angularjs.org/api/ng/service/$compile#-compile-) 템플릿을 조작합니다. – Jai

+0

나는 ers-multi-selecter 플러그인을 정의한 곳에서 속성 값을 원합니다 –

+0

'restrict, link'이 두 ​​가지 중요한 사항이 지시어 코드에 없습니다. – Jai

답변