ng-инициализация с операторами условий

#javascript #angularjs #laravel-5.3

#javascript #angularjs #laravel-5.3

Вопрос:

У меня есть приложение Angular JS,

 <div class="col-lg-12" ng-init="getTableData('{{URL::route('get_repair_category')}}')">
  

При загрузке страницы будут выполняться getTableData, но я хочу проверить переменную $rootScope.Дилер и измените имя функции инициализации.

Например: если $rootScope.Присутствует значение дилера, я хочу выполнить функцию с именем getDealerData

И если значение не задано, необходимо выполнить функцию getTableData.

Как я могу сделать это в шаблоне anglar js.

Я только что попробовал ng-if, но он не работает…

Ответ №1:

Вы можете использовать простой синтаксис Javascript в директиве ng-init следующим образом:

 <div class="col-lg-12" ng-init="Dealer ? getDealerData('{{URL::route('get_repair_category')}}') : getTableData('{{URL::route('get_repair_category')}}')">
  

Вот для вас plnkr (я изменил генерацию внутреннего маршрута на текстовый):
https://plnkr.co/edit/CJOMT0g50BCWa3j02rcS?p=preview

Ответ №2:

Попробуйте это

 var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope, $rootScope) {

  $rootScope.dealer = ["a", "b", "c"];

  $scope.getTableData = function(x) {
    return x;
  }
  $scope.getDelearData = function() {
    return $rootScope.dealer;
  }
})  
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
  <div ng-init="data = getDelearData() || getTableData('table data')">
    {{data}}
  </div>
</div>