2017-02-10 16 views
-1

Ниже HTML, который я используюМетод по размаху еще не вызывался от нг нажмите

<div ng-controller="profileEventsCtrl" > 
<div class="row mainNavbar" data-ng-show="hideVanityPlate"> 
<div id="navigatornavbarview" data-ui-view="navigatornavbarview"></div> 
</div> 
<div class="Profileindex" ng-init="init()"> 
<div id="profile" style="padding-bottom:20px"> 
    <div class="col-md-12"> <h1>My Events</h1></div> 
    <div class="row"> 
     <div class="col-md-2"> 
      <div profile-navigation=""></div> 
     </div><!--col-md-2--> 
     <div class="col-md-10"> 
      <accordion close-others="true"> 
       <accordion-group is-open="status.open" ng-repeat="userEvent in userEvents"> 
        <accordion-heading> 
         {{userEvent.Event.Title}} 
         <div class="condensed medium pull-right date">{{userEvent.Event.FormatedEventDateStartToEnd}} &nbsp</div> 
         <div class="condensed medium lineblock"> 
          <span class="place ">{{userEvent.Event.Location}}</span> | <span class="place" ng-click="switchEvent(userEvent.Event.Code)" ><span>{{SwitchEventText}}</span></span> 
         </div> 
        </accordion-heading> 
       </accordion-group> 
      </accordion> 
     </div> 
    </div> 
</div> 

А вот контроллер, который я использую

(function (ng, app) { 
'use strict'; 

app.controller('profileEventsCtrl', ['$scope', '$location', '$state', '$rootScope', '$q', '$timeout', 'localization','profileSvcs', profileEventsCtrl]); 
function profileEventsCtrl($scope, $location, $state, $rootScope, $q, $timeout, localization, profileSvcs) { 
    $scope.userEvents = {}; 
    $scope.SwitchEventText = "Switch Events" 

    $scope.init = function() { 
     $rootScope.currentScope = $scope; 
     $scope.hideVanityPlate = true; 
     $scope.getMyEvents(); 

    }; 


    $scope.getMyEvents = function() { 
     profileSvcs.getMyEvents().then(function (response) { 
      $scope.userEvents = response.data; 
     }); 
    } 

    $scope.switchEvent = function (eventCode) { 
     var newLocationHash = "/" + $rootScope.cultureCode + "/navigator/" + eventCode + "/profile"; 
     $location.path(newLocationHash); 
    } 



}  
})(angular, app); 

Все остальные компоненты работают нормально. Данные загружаются из API и заполняются. Но ng-click не работает. Я не делаю никаких ошибок консоли, поэтому трудно отлаживать.

Также необходимо проверить, включена или нет функция switchEvent. Я пробовал ng-init вместо ng-click, и функция вызывается для каждой строки в ng-repeat, поэтому я предполагаю, что switchEvent в области.

+0

Ваш повторный рабочий? – Sajeetharan

+0

@Sajeetharan да, ng-repeat работает нормально – kaysush

ответ

0

Попробуйте передавая объект с нг кнопкой мыши и получить доступ к свойству внутри функции мыши

ng-click="switchEvent(userEvent)" 

Контроллер:

$scope.switchEvent = function (eventCode) { 
     var newLocationHash = "/" + $rootScope.cultureCode + "/navigator/" + eventCode.Event.Code + "/profile"; 
     $location.path(newLocationHash); 
    } 
+0

никакого эффекта, все же функция не вызвана и не вызывает ошибок на консоли. – kaysush

+0

Могу ли я увидеть ваш код через зрителя команды или создать плунжер – Sajeetharan

+0

http://plnkr.co/edit/63Leeo2M4ArOi45rwg3q – kaysush

0

Смотрите эту строку: -

<span class="place "> 
    {{userEvent.Event.Location}} 
</span> | 
<span class="place" ng-click="switchEvent(userEvent.Event.Code)"> 
    <span> 
     {{SwitchEventText}} 
    </span> 
</span> 

По вашему желанию вы нажимаете этот метод

Возможно, это не вызов, потому что вы не нажимаете на точный интервал. может быть ...

Попробуйте изменить его на

<span class="place "> 
    {{userEvent.Event.Location}} 
</span> | 
<span class="place" ng-click="switchEvent(userEvent.Event.Code)"> 
    {{SwitchEventText}} 
</span> 

Снимите внутри SPAN

+0

take посмотрите на plnkr, который я создал http://plnkr.co/edit/63Leeo2M4ArOi45rwg3q. Его близок к этому коду и имеет такую ​​же проблему. – kaysush