2013-05-03 3 views
1

사용자가 확인란을 클릭 할 때 키 누르기를 바인드/바인딩 해제하려고합니다. 나는 약간의 코드를 작성하려고했지만 자바 스크립트 콘솔에서 오류없이 작동하지는 않았다.각도 UI - 키 누르기에 대한 바인딩 및 바인딩 해제

HTML

<textarea name="message" ng-model="message" ui-keypress="btnEnter"></textarea> 
<input type="checkbox" ng-click="bindKeyEnter($event)"> 

JS

function MyCtrl($scope) { 
    $scope.btnEnter = {}; 

    $scope.bindKeyEnter = function(e) { 
     var checkbox = e.target; 
     $scope.btnEnter = checkbox.checked ? {enter: 'sendMessage()'} : {} 
    }; 

    $scope.sendMessage = function() { console.log($scope.message); } 
} 

귀하의 제안?

답변

3

이처럼 할 수있는 :

HTML을 :

<div ng-controller="TstCtrl"> 
    <input ui-keypress="{enter: enter}" /> 
    <input type="checkbox" ng-model="doOnEnter" /> 
</div> 

자바 스크립트 :

app.controller('TstCtrl', function ($scope) { 
    $scope.enter = function() { 
     if ($scope.doOnEnter) 
      realOnEnter(); 
    }; 

    function realOnEnter() { 
     console.log('On enter'); 
    } 
}); 

참조 working jsfiddle here