简体   繁体   English

Angular如果条件不适用于状态

[英]Angular if condition is not working with states

I am using angular translate in an Ionic app, and depending upon the language selected in the drop-down, different states need to be loaded. 我在Ionic应用程序中使用角度转换,并且根据下拉列表中选择的语言,需要加载不同的状态。

Main Controller: 主控制器:

.controller('mainCtrl', function ($scope, $state, $translate) {
  var ctrl = this;
  ctrl.language = 'kn';
  ctrl.languages = ['kn', 'en'];

  ctrl.updateLanguage = function () {
    $translate.use(ctrl.language);
  };

  $scope.lang = function () {
    if (ctrl.language = 'kn') {
      $state.go('knmenu', {}, { location: "replace", reload: true });
    } else($translate.use(ctrl.language)) {
      $state.go('menu', {}, { location: "replace", reload: true });
    }
  }

main.html: main.html中:

<div ng-controller="mainCtrl as ctrl">
  <button
    class="button button-block button-balanced"
    ng-click="lang()"
  >
    {{ 'TITLE' | translate }}
  </button>
  <select
    ng-options="language | translate for language in ctrl.languages"
    ng-model="ctrl.language"
    ng-change="ctrl.updateLanguage()"
  ></select>
</div>

if i can understand you problem based on values first select box you want to populate second select box. 如果我能理解你基于值的问题首先选择你要填充第二个选择框的框。 the below Plunker will solve your problem 以下Plunker将解决您的问题

plunker link http://plnkr.co/edit/nND1iw7unDnelGQ3EtnA?p=preview plunker link http://plnkr.co/edit/nND1iw7unDnelGQ3EtnA?p=preview

In you condition check if (ctrl.language = 'kn') this is always true, it should be if (ctrl.language == 'kn') I guess this is the problem. 在你的条件检查if (ctrl.language = 'kn')这总是如此,它应该是if (ctrl.language == 'kn')我想这是问题所在。 Hope this will help. 希望这会有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM