Angularjs ng-условие класса для window.Расположение

#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> ?