I have the following javascript object that I'm building my navigation bar from:

$scope.slo = [
    {
      main: "IJS",
      url: "https://www.ijs.si/ijsw"
    },
    {
      main: "ZIC",
      icon: "glyphicon glyphicon-triangle-bottom",
      submenu: [{
        one: "predstavitev",
        two: "osebje"
      }]
    },
    {
      main: "knjižnica",
      icon: "glyphicon glyphicon-triangle-bottom",
      submenu: [{
        one: "tiskane revije",
        two: "elektronske revije",
        three: "baze podatkov",
        four: "katalog(COBISS)"
      }]
    },
    {
      main: "storitve",
      icon: "glyphicon glyphicon-triangle-bottom",
      submenu: [{
        one: "bibliografije",
        two: "medknjižnična izposoja",
        three: "fotokopirnica"
      }]
    }
    ];

    $scope.eng = [{
      main: "IJS"
    },
    {
      main: "ZIC",
      icon: "glyphicon glyphicon-triangle-bottom",
      submenu: [{
        one: "introduction",
        two: "staff"
      }]
    },
    {
      main: "library",
      icon: "glyphicon glyphicon-triangle-bottom",
      submenu: [{
        one: "printed journals",
        two: "electronic journals",
        three: "databases",
        four: "catalogue(COBISS)"
      }]
    },
    {
      main: "services",
      icon: "glyphicon glyphicon-triangle-bottom",
      submenu: [{
        one: "bibliographies",
        two: "interlibrary loan",
        three: "copy room"
      }]
    }];

Теперь я хочу добавить разметку ng-href в свой html, но только если присутствует свойство url. Так, например, первая полоса будет указывать на URL-адрес, а остальные - нет, поскольку они являются раскрывающимися списками.

Это моя разметка html:

{{ menu.main }}

Мой вопрос: могу ли я поставить условие для ng-href, чтобы оценить, присутствует ли свойство url, а затем связать значение свойства urls? И если смогу, как мне это сделать?

С моей текущей разметкой я получаю только:

IJS
ZIC

Ответы (2)

Вы должны использовать ng-attr - * для условного добавления атрибутов в вашу разметку

{{ menu.main }}

Это добавит атрибут href к вашему тегу привязки, только если есть допустимое значение для menu.url. Если {{menu.url}} преобразуется в undefined, тогда атрибут href не будет добавлен к вашему элементу.

Вы можете использовать свойство ng-if с такой функцией

{{ menu.main }}

написать функцию в контроллере

$scope.isExistUrl = function(url){
   // Write logic here if exist return true else false
}

2022 WebDevInsider