Использование ng-switch в директиве angularjs и использование этой директивы в ng-grid cellTemplate

Я сделал следующую директиву:

.directive('getData', function(){
        return {
            restrict: 'C',
            replace: true,
            transclude: true,
            scope: { myData:'@myData' },
            template: '<div ng-switch="myData">' +
                        '<div ng-switch-when="4">Real Data</div>' +
                        '<div ng-switch-when="5">False Data</div>' +
                        '<div ng-switch-default>No Data</div>' +
                      '</div>'
        }

Затем в сетке, использующей ng-grid, у меня есть столбец с двумя строками со значениями 4 и 5. У меня есть следующее в cellTemplate для этого столбца:

cellTemplate: ' < div class="getData" myData="{{row.getProperty(col.field)}}" />'

Проблема в том, что обе строки отображают «Нет данных». Я хотел бы показать «Реальные данные» в ячейке со значением 4 и «Ложные данные» в ячейке со значением 5.

Что я делаю не так? Любая помощь будет принята с благодарностью.


person user2644340    schedule 02.08.2013    source источник
comment
Попробуйте изменить эту строку в вашем шаблоне <div ng-switch="myData"> на <div ng-switch on="myData">. Согласно примеру на странице документации ngSwitch.   -  person Jonathan Palumbo    schedule 02.08.2013
comment
Я попробовал с ‹div ng-switch on=myData›. Но это не дает мне нужных результатов.   -  person user2644340    schedule 02.08.2013
comment
Не могли бы вы настроить пример plunker или jsfiddle?   -  person Jonathan Palumbo    schedule 02.08.2013
comment
Извините за задержку с ответом. Вот плункер plnkr.co/edit/haJ0loFDJ4bZ2iJcIFtv?p=preview Спасибо за ваше помощь!   -  person user2644340    schedule 04.08.2013


Ответы (1)


В cellTemplate измените myData на my-data. При использовании угловых директив верблюжий регистр автоматически преобразуется в тире библиотекой angular.

Например, если у вас есть элемент директивы, определенный как "mySuperAwesomeDirective". Он будет объявлен в html, используя следующее.

<my-super-awesome-directive></my-super-awesome-directive>

Вот рабочая версия вашего примера plunker.

http://plnkr.co/edit/ENj00Re3bfaVGPlomhFG?p=preview

person Jonathan Palumbo    schedule 05.08.2013