как я могу переместить логику из ng-if из html и превратить ее в функцию в контроллере?
<menu ng-if="location.path() === '/salad' || location.path() ==='/main'"></menu>
контроллер: ???
Я пытаюсь отдать, но это не помогло:
html: <menu ng-if="menuItem()"></menu>
контроллер:
$scope.menuItem = function() {
return menuItem === $location.path('/salad') || $location.path('/main');
}
Кажется, что нет ничего плохого в использовании этой директивы, хотя предпочтительнее использовать ng-if с выражением, а не функцией, поскольку теперь функция будет оцениваться в каждом цикле дайджеста.
Я думаю, что ваша ошибка на самом деле происходит от того, как вы написали свое выражение в menuItem.
Пытаться:
$scope.menuItem = function () {
return ($location.path() === '/salad' || $location.path() ==='/main')
}