【问题标题】:ng-init with condition statements带有条件语句的 ng-init
【发布时间】:2017-03-06 03:54:45
【问题描述】:

我有一个 Angular JS 应用程序,

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

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

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

的函数

如果没有设置值需要执行getTableData函数。

如何在 Angular js 模板中制作这个。

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

【问题讨论】:

    标签: javascript angularjs laravel-5.3


    【解决方案1】:

    您可以像这样在 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

    【讨论】:

      【解决方案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>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-13
        • 1970-01-01
        • 2021-06-19
        • 2019-06-12
        • 2020-08-18
        • 2017-12-02
        • 2017-07-08
        • 2020-05-24
        相关资源
        最近更新 更多