Как использовать фильтр daterange в смарттаблице?

Я пытаюсь использовать этот фильтр диапазона дат smarttable в своем приложении: ?p=предварительный просмотр. Я добавил этот фильтр в свою таблицу:

<tr>
          <th>
              <st-date-range predicate="account.settlementDate" before="query.before" after="query.after"></st-date-range>
          </th>
</tr>

Когда я интегрирую файлы в свое приложение, я получаю эту ошибку:

Error: [$compile:multidir] Multiple directives [stDateRange, stDateRange] asking for template on: <st-date-range predicate="account.settlementDate" before="query.before" after="query.after">

Как я могу избежать этой ошибки?


person Pindakaas    schedule 22.09.2015    source источник
comment
Вы добавили шаблон «stDateRange.html» в свой проект?   -  person Satyam Koyani    schedule 22.09.2015
comment
да, я добавил stDateRange.html   -  person Pindakaas    schedule 22.09.2015
comment
Он находится в той же папке, где находится этот js-файл директивы?   -  person Satyam Koyani    schedule 22.09.2015
comment
Нет, другое место. Будет ли это иметь значение?   -  person Pindakaas    schedule 23.09.2015
comment
Да это оно. Смотрите, я дал объяснение в ответ.   -  person Satyam Koyani    schedule 23.09.2015


Ответы (1)


Вот, если вы перейдете на этот демонстрационный plnkr, который вы упомянули, и проверьте script.js. В нем реализованы две разные директивы stDateRange и stNumberRange.

<tr>
    <th>
       <st-date-range predicate="account.settlementDate" before="query.before" after="query.after"></st-date-range>
    </th>
</tr>

Здесь в вашем шаблоне вы используете одну из директив с именем stDateRange в своем шаблоне.

Когда этот шаблон загружается в DOM. Он скомпилирует эту директиву и найдет шаблон, сконфигурированный с этой директивой, на указанном templateUrl.

Проверьте script.js plnkr. ниже вы найдете конфигурацию директив.

Некоторая часть показана здесь

 restrict: 'E',
                require: '^stTable',
                scope: {
                    before: '=',
                    after: '='
                },
                templateUrl: 'stDateRange.html',

Здесь templateUrl попытается найти stDateRange.html в той же папке, где находится этот файл сценария директивы, которого там нет, как вы упомянули в своем комментарии.

Это создает вам проблемы.

Теперь есть два решения.

1 -> Измените этот templateUrl в директиве и укажите правильный путь к stDateRange.html

2 -> Поместите stDateRange в ту же папку, где находится script.js.

person Satyam Koyani    schedule 22.09.2015
comment
Это не решение: если путь правильный, он сможет правильно загрузить этот шаблон? - person Pindakaas; 23.09.2015