0

我有一个我创建的指令。有一个文本框,我正在尝试更新框中的字符数。首先这里是声明我的指令的html。

<div chat-container encounter="selectedEncounter" ng-model="count"></div>

这是我的指令。

angular.module('clinicalApp').directive('chatContainer', function() {
  return {
    scope: {
      encounter: '=',
      ngModel: '='
    },

    controller: 'EncounterCtrl',

    templateUrl: 'views/chat.container.html',

    link: function(scope, elem, attrs) {
      var chatbox = elem.find('textarea');
      chatbox.bind('keyup',function() {
        scope.updateCount();
      });
    }
  };
});

在我的模板中是{{count}}我想要更新的。

在我的控制器中,我有一个在bind更新计数时调用的函数。这是我的控制器中的功能。

  $scope.updateCount = function() {
    $scope.count = 350;
  };

当这个函数在我的控制器中被击中时,它不会更新我指令中的计数。我该如何进行这项工作?

更好的是,如何让指令更新计数?我认为 2-way binding 会解决这个问题,但事实并非如此。谢谢您的帮助。

4

2 回答 2

0

我的问题是我试图更新模板中的错误属性。如果你看上面我试图更新{{count}},我需要更新{{ngModel}}

于 2013-10-17T18:34:07.833 回答
0

您需要通知 Angular 您更新了一个值:

$scope.updateCount = function() {
    $scope.$apply( function() {
       $scope.count = 350;
    });
};
于 2013-10-17T19:01:31.587 回答