#angularjs #angularjs-directive
#angularjs #angularjs-директива
Вопрос:
я пытаюсь отменить / установить класс css по определенному URL пути
Я пытался написать этот код, но без какого-либо успеха
<div ng-class="window.location.toString().includes('ocs')? '' :'icon-home'"></div>
в консоли Chrome я вижу это:
<div ng-class="window.location.toString().includes('ocs')? '' :'icon-home'" class="icon-home"></div>
Мне нужно создать новый модуль angularjs и область для этого?
Комментарии:
1. можете ли вы быть более точным в отношении «без какого-либо успеха»? У вас есть какие-либо ошибки? Что-нибудь неожиданное?
2. Я вижу класс в html, поэтому условие не работает Расположение. toString().includes(‘ocs’)? » :’icon-home'» class=»icon-home»></div>
3. если вы попытаетесь выполнить отладку с помощью a
console.log
, что вы получитеwindow.location.toString()
?4. {{console.log(window. Расположение. toString())}} не работает внутри html-кода, нет сообщений, нет ошибок, с консолью у меня есть весь путь, и условие работает
5.
{{}}
предназначен для интерполяции переменных,console.log
не является переменной из вашей области видимости, для отладки кода вам следует либо поместить строку в контроллер, либо удалить{{}}
.
Ответ №1:
Поскольку вы очищаете класс, если location содержит ‘ocs’, правильный подход должен быть таким:
// in you angularjs controller:
$scope.containesOCS = window.location.toString().includes('ocs');
И в html:
<div ng-class="{'icon-home': !containesOCS}"></div>
И если вы еще не создали угловой модуль или контроллер, пожалуйста, сделайте это в первую очередь. Без
ng-app атрибуты angular работать не будут.
Комментарии:
1. <div ng-class=»{‘icon-home’: !containesOCS}» class=»icon-home»></div> результат
2. У меня на моей странице есть два crontroller, maincontroller и summarycontroller, я добавил в оба из них область видимости
3. Пожалуйста, укажите, в чем проблема с результатом. Он работает так, как я ожидаю, и, поскольку ваше местоположение не содержит подстроки «ocs», он применяет класс «icon-home» к вашему div. Если это так, то классы применяться не будут. И если вы хотите применить класс, если он содержит «ocs», просто удалите ‘!’ из перед переменной containsOCS в условии.
4. localhost:8443/digital-signature/ocs /wizard/1549460936017# моя строка местоположения Windows
5. Работает ли это
<div ng-class="{'icon-home': containesOCS}"></div>
?