2016-06-21 2 views
3

"$ {undefined}"속성을 설정할 수 없습니다. 나는이 질문이 이미 요구되지만 나는 그것을 해결할 수 없다는 것을 안다.

$scope.editmode = false; 
$scope.toggleEditMode = function() { 
    $scope.editmode = $scope.editmode === false ? true : false; 

} 

    directives.directive("contenteditable", function() { 

창 {

link: function(scope, element, attrs, ngModel) { 

    function read() { 
    ngModel.$setViewValue(element.html()); 
    } 

    ngModel.$render = function() { 
    element.html(ngModel.$viewValue || ""); 
    }; 

    element.bind("blur keyup change", function() { 
    scope.$apply(read); 
    }); 
} 

}; }}); 당신이 링크 기능에 ngModel를 사용하는 경우

<tr dir-paginate="us in zdravstveniPostupci | filter: {Postupak: nasUser} | orderBy:orderByField:reverseSort | itemsPerPage:selectedMenu" ng-dblclick="updateOsoba(us, selectMjesto)" on-long-press="updateOsoba(us, selectMjesto)" ng-click="odaberiOsobe(us,$index)" ng-attr-contenteditable="{{ editmode }}"> 

         <td ng-repeat="key in draggableObjects" ng-if="key.visible" > 
          <span ng-if="key.name!='Mjesta'"> {{us[key.name]}}</span> 

         </td> 

        </tr> 

    <div class="col-md-4 center-block" style="position:fixed;top:36%;left:82%;" id="gumbicc"> 
<button type="button" class="btn btn-responsive" ng-click="toggleEditMode(); ShowHide()" >{{editmode ? 'Disable Editing' : 'Enable Editing'}}</button></div> 

답변

0

당신은

return { 
    require: 'ngModel', // <---THIS 
    link: function(scope, element, attrs, ngModel) { 

    function read() { 
    ngModel.$setViewValue(element.html()); 
    } 

    ngModel.$render = function() { 
    element.html(ngModel.$viewValue || ""); 
    }; 

    element.bind("blur keyup change", function() { 
    scope.$apply(read); 
    }); 
} 
+0

다음 오류가 나타납니다. 오류 : [$ compile : ctreq] 'contentditable'지시어에 필요한 'ngModel'컨트롤러를 찾을 수 없습니다! –

+0

@ IvanLuketić이 참조하십시오 : http://stackoverflow.com/a/21807863/1562490 –

+0

그래서 어딘가에 NG 모델을 놓치고 –

0

당신의 지시에 ngModel을 필요로 지시어에 그것을 필요로한다.

directives.directive("contenteditable", function() { 
    return { 
     require: 'ngModel', 
     link: function(scope, element, attrs, ngModel) { 

      function read() { 
      ngModel.$setViewValue(element.html()); 
      } 

      ngModel.$render = function() { 
      element.html(ngModel.$viewValue || ""); 
      }; 

      element.bind("blur keyup change", function() { 
      scope.$apply(read); 
      }); 
     } 
    } 
} 

당신은 ngModel에 대한 자세한 설명이 기존 SO post를 참조 할 수있다.

+0

다음이 오류가 발생합니다. 오류 : [$ 컴파일 : ctreq] 컨트롤러 'ngModel'필요 지시어 'contenteditable'을 (를) 찾을 수 없습니다! –

+0

@ IvanLuketić 내가 틀렸다면 정정 해주세요. 우리 [key.name]의 가치를 편집 가능으로 만들고 싶습니까? –

+0

예 편집 할 수있게 만들고 싶습니다 –

관련 문제