使用routeChangeSuccess只运行我的部分功能。为什么以另一种方式运行该功能会有所不同?

时间:2016-07-27 14:46:30

标签: javascript angularjs

在我的angularJS应用程序中,我想在路线加载后检查一个radiobox。使用$scope.$on('$routeChangeSuccess', function() {我没有这样的运气。所有警报都使用routeChangeSuccess加载,但是无线电影像的检查没有。

作为测试我创建了一个按钮,当我点击它时,它通过ng-click运行testByClickingThis()。这将运行相同的代码并运行,发送警报并选中复选框。

有什么区别和原因?如何在路由负载上预先选择radiobox?

此处包含控制器代码:

publicapp.controller('LCLoggedinController', function($scope, $route, patientAnswers) {
  $scope.language='';
  $scope.back = '#/';
  $scope.home = '#/lcloggedin';
  $scope.next = '#/lcloggedin';

  $scope.objectValue = patientAnswers.getObject();

  $scope.$on('$routeChangeSuccess', function() {
    if($scope.objectValue.language=="english"){
      alert('a');
      document.getElementById("englishBox").checked = true;
    }else if($scope.objectValue.language=="italian"){
      alert('b');
      document.getElementById("italianBox").checked = true;
    }else{
      $scope.language='#/lcloggedin';
      alert('c');
    }
  });
  $scope.testByClickingThis = function () {
    if($scope.objectValue.language=="english"){
      alert('a');
      document.getElementById("englishBox").checked = true;
    }else if($scope.objectValue.language=="italian"){
      alert('b');
      document.getElementById("italianBox").checked = true;
    }else{
      $scope.language='#/lcloggedin';
      alert('c');
    }
  }
});

0 个答案:

没有答案