Javascript 为什么我的排不突出有棱角的

Javascript 为什么我的排不突出有棱角的,javascript,angularjs,Javascript,Angularjs,我试图突出一行的角度。这是我的html: <tr ng-class="{selected: $index==selectedIndex}" ng-repeat="encounter in encounters | filter:search" data-id="{{encounter.id}}" ng-click="getSelectedRow($index)"> 这将广播到控制器以突出显示行。这里是控制器应该做的事情,这很神奇: $scope.$on('selectedRo

我试图突出一行的角度。这是我的html:

<tr  ng-class="{selected: $index==selectedIndex}" ng-repeat="encounter in encounters | filter:search" data-id="{{encounter.id}}" ng-click="getSelectedRow($index)">
这将广播到控制器以突出显示行。这里是控制器应该做的事情,这很神奇:

  $scope.$on('selectedRow', function(event, data) {
    $scope.selectedIndex = data.rowIndex;
    $scope.selectedEncounter = $scope.encounters[data.rowIndex];
  });
控制器中的代码被命中,但该行从未高亮显示。我缺少什么?

ng class=“{selected:$index==$parent.selectedIndex}”


$parent是键,否则您将指向行上的selectedindex,而不是范围

这取决于谁持有成员属性
selectedindex
-如果是指令,则不需要$parent,b/c ng repeat可以看到指令的范围。但是,如果是页面控制器(或包含该指令的控制器),则需要通过该指令的$parent访问它

jsfiddle:

HTML

输入0-9之间的数字
使用应用范围
    [0,1,2,3,4,5,6,7,8,9]中的
var myApp=angular.module('myApp',[]);
myApp.directive('myDirective',function(){
返回{
限制:'E',
模板:“
在[10,11,12,13,14,15,16,17,18,10]中使用$parent.scope
  • {{y}
你能用这个例子创建一个plunker吗?“行上的selectedindex”-这是什么意思?Jason,你能详细解释一下吗?顺便说一句,这并没有解决问题。
<div ng-controller="MyCtrl">enter a number from 0 - 9
    <input ng-model='selectedIndex' type='text'>

    Uses appliction scope
    <ul>
        <li ng-repeat='x in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]' ng-class='{"selected": $index==selectedIndex}'>{{x}}</li>
    </ul>
        <my-directive></my-directive>
    </div>
var myApp = angular.module('myApp', []);

myApp.directive('myDirective', function () {
    return {
        restrict: 'E',
        template: "<div><hr/>Uses $parent.scope<ul><li ng-repeat='y in [10, 11, 12, 13, 14, 15, 16, 17, 18, 10]' ng-class='{\"selected\": $index==$parent.selectedIndex}'>{{y}}</li></ul></div>"
    };
});

function MyCtrl($scope) {}