1

ユーザーがチェックボックスをクリックしたときにキープレスをバインド/バインド解除したい。少しコーディングしようとしましたが、javascript コンソールでエラーが発生せずにまったく機能しません。

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); }
}

あなたの提案?

4

1 に答える 1

3

次のようにできます。

HTML:

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

Javascript:

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

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

ここで作業中のjsfiddleを参照してください

于 2013-05-03T08:33:28.260 に答える