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