带有条件语句的ng-init

时间:2016-10-24 11:30:07

标签: javascript angularjs laravel-5.3

我有一个Angular JS应用程序,

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

当页面加载时,getTableData将执行,但我想检查变量 $ rootScope.Dealer 并切换初始化的函数名称。

例如:如果 $ rootScope.Dealer 值存在,我想执行名为 getDealerData

的函数

如果未设置该值,则需要执行 getTableData 函数。

如何在anglar js模板中制作它。

我刚试过ng-if,但它不起作用......

2 个答案:

答案 0 :(得分:7)

您可以在ng-init指令中使用简单的Javascript语法,如下所示:

<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

答案 1 :(得分:1)

试试这个

&#13;
&#13;
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;
  }
})
&#13;
<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>
&#13;
&#13;
&#13;