Angularjs Angular.JS指令未更新

Angularjs Angular.JS指令未更新,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我正在使用单击函数更新名为$scope.arrangement的作用域数组,但这不会导致我的指令更新DOM /****************************************** Sort function ******************************************/ $scope.sort = function() { $scope.arrangement.sort(function(a, b){

我正在使用单击函数更新名为$scope.arrangement的作用域数组,但这不会导致我的指令更新DOM

/******************************************
  Sort function
******************************************/  

  $scope.sort = function() {
        $scope.arrangement.sort(function(a, b){
            var keyA = a.created,
        keyB = b.created
        // Compare the 2 dates
        if(keyA < keyB) return -1;
        if(keyA > keyB) return 1;
        return 0;
        })
        for (b=0;b<$scope.arrangement.length;b++) { 
            if($scope.arrangement[b].ord !== b) {
                console.log('order was '+$scope.arrangement[b].ord + " now " + b)
                $scope.arrangement[b].ord=b;
            }
        }
    }
})

/******************************************
  Directives
******************************************/

app.directive('item', function() {
  return {
    restrict: 'A',
    scope: {
      count: "=",
      arrangement: "="
    },
    link: function(scope,element,attrs) {
      console.log('updated')
      for (a=0;a<scope.arrangement.length;a++) {
        if (scope.arrangement[a].ord === scope.count) {
          element.html("Item "+scope.arrangement[a].id + " Created: " + scope.arrangement[a].created)
        }
      }
    }
  }
})
/******************************************
排序函数
******************************************/  
$scope.sort=函数(){
$scope.arrangement.sort(功能(a、b){
var keyA=a.已创建,
keyB=b
//比较两个日期
if(keyAkeyB)返回1;
返回0;
})

对于(b=0;b,
link
函数只运行一次。
elem.html
不使用数据绑定,因此在链接指令时,这将只在初始设置元素的html。您可以自己设置一个手表:

scope.$watchCollection('arrangement', function () {
  for (a=0;a<scope.arrangement.length;a++) {
    if (scope.arrangement[a].ord === scope.count) {
      element.html("Item "+scope.arrangement[a].id + " Created: " + scope.arrangement[a].created)
    }
  }
});
scope.$watchCollection('arrangement',function(){

对于(a=0;a您似乎已将排列和计数设置为双向作用域绑定属性。但是,您将它们指定为属性。您的意思是使用
@'
作用域绑定吗?我认为通过绑定它们,它们将更新父作用域,从而触发指令更新。您能告诉我在plunker中您将做哪些更改吗请
<span ng-if="arr.ord == s.count" ng-repeat="arr in arrangement">
  Item {{arr.id}} Created: {{arr.created}}
</span>