0

我有一个指令,当单击一行时会显示详细信息屏幕。我正在尝试更新遭遇。这是指令:

angular.module('app').directive('chatContainer', function() {
  return {
    scope: {
      encounter: '=',
      count: '='
    },
    templateUrl: 'views/chat.container.html',
    link: function(scope, elem) {
  };
});

这是指令的模板:

<div class="span4 chat-container">
 <h5 class="chat-header">
  <span class="container">{{encounter.patient.firstName }} {{encounter.patient.lastName}}</span>
  </h5>
</div>

这是在 html 中声明指令的位置:

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

这是单击该行时调用的控制器。

angular.module('app').controller('EncounterCtrl', function ($scope, singleEncounter) {

  $scope.count = 500;

  $scope.selectedIndex = -1;

  $scope.selectedEncounter = -1;

  $scope.getSelectedRow = function($index) {
    $scope.selectedIndex = $index;
    $scope.selectedEncounter = $scope.encounters[$scope.selectedIndex];
  };

  $scope.encounter = singleEncounter.selectedEncounter;
});

我进入了这个功能getSelectedRow(),它改变selectedEncounter了正确的遭遇。绑定不会将选择带到我的chatContainer. 我想当我encounter在指令范围中声明并将其=作为范围类型时,它绑定了它,但我错过了什么???

4

1 回答 1

0

您需要进行$apply()更改,但是操作值的逻辑应该在 chatContainer 指令内,而不是在控制器内。

于 2013-10-21T16:44:30.447 回答