2016-06-05 4 views
3

У меня есть базовое приложение Angular.js, которое использует ocLazyLoad для загрузки файлов приложений. Я использую скелет шаблона sbAdminApp.ng-click событие, не работающее с ocLazyLoad

Моя проблема в том, что когда я использую шаблон с событием ng-click, событие click не запускается. Это не проблема масштаба, потому что когда я печатаю содержимое функции в виде, это показано.

Вот некоторые из моего кода:

Для загрузки файлов с помощью ocLazyLoad:

$stateProvider.state('dashboard.importLotteries', { 
    templateUrl: '/Scripts/app/views/importLotteries.html', 
    url: '/importLotteries', 
    controller: 'LotteriesCtrl', 
    resolve: { 
     loadMyFiles: function ($ocLazyLoad) { 
      return $ocLazyLoad.load({ 
       name: 'sbAdminApp', 
       files: [ 
        '/Scripts/app/scripts/services/lotteriesService.js', 
        '/Scripts/app/scripts/controllers/lotteries.js' 

       ] 
      }) 
     } 
    } 
} 

Это файл шаблона importLotteries.html:

<!-- /.row --> 
<div class="row"> 
    <div class="col-lg-12"> 
     <div class="panel panel-default"> 
      <div class="panel-heading"> 
       Import Lotteries 
      </div> 
      {{importLotteries.toString()}} 
      <div class="panel-body"> 
       <input type="button" ng-click="importLotteries()" value="Import"/> 

       <span ng-model="importStatus"> 
       </span> 
      </div> 
     </div> 
      <!-- /.panel --> 
     </div> 
    <!-- /.col-lg-12 --> 
</div> 

и это диспетчерское код:

'use strict'; 
angular.module('sbAdminApp') 
    .controller('LotteriesCtrl', function ($scope, lotteriesService) { 

     $scope.importLotteries = function() { 

      alert("importing"); 
      $scope.importStatus = "Loading..."; 
     }; 

    }); 

Вид результат выглядит следующим образом:

enter image description here

Так как вы можете видеть, функция существует по пулу, но событие щелчка не стрелять, и я не получаю никаких ошибок.

Я попытался найти решение в Интернете в течение некоторого времени и не смог найти его, поэтому любая помощь будет принята с благодарностью!

После дальнейшего изучения проблемы, я вижу, что функция события (importLotteries) не определена в области видимости, но когда я меняю значение на строку вместо функции, значение области верна.

+0

@ HanletEscaño Нет, не должен. Вы добавляете только префикс, если используете синтаксис controllerAs, которого нет, и вы, вероятно, не захотите называть его как $ scope. Шай, откуда ты знаешь, что он не стреляет? Установили ли вы точку останова? – matmo

+0

@Shai Откуда вы знаете, что это проблема ocLazyLoad? Вы пытались загрузить файлы (lotteriesService.js, lotteries.js) раньше, а не загружать их с помощью ocLoazyLoad? – Saad

+0

@matmo, да, я установил точку останова, и я добавил команду предупреждения, которая не выполнена. –

ответ

0

Попробуйте подключить ng-href или href к ссылке, и он будет запущен.

<input type="button" ng-click="importLotteries()" ng-href='#' value="Import"/> 

Источник:

[1] Angular ng-click with call to a controller function not working

+1

Но он не использует ссылку, но вход не должен иметь атрибут href или ng-href –

Смежные вопросы