2016-08-08 5 views
0

У меня проблема с изменением слайдера на угловое. Вот мой код, который работает:Невозможно изменить слайдер JS на Угловую директиву

<div id="main-img" class="main-img"> 
    <img id="img" src="image.jpg"> 
</div> 
<div id="thumb-img" class="thumb-img" > 
    <img src='image.jpg' onclick='changeImage("image.jpg");'> 
    <img src='image1.jpg' onclick='changeImage("image1.jpg");'> 
</div> 
<script> 
    function changeImage(a) { 
     document.getElementById("img").src=a; 
    } 
</script> 

И когда мне нужно Угловая я изменить его, и он не работает:

<div id="main-img" class="main-img"> 
     <img id="img" ng-src="{{some.image1}}"> 
    </div> 
    <div id="thumb-img" class="thumb-img" > 
     <img ng-src='{{some.image1}}' ng-click='changeImage("{{some.image1}}");'> 
     <img ng-src='{{some.image2}}' ng-click='changeImage("{{some.image2}}");'> 
    <script> 
     function changeImage(a) { 
      document.getElementById("img").src=a; 
     } 
    </script> 

Что я делаю неправильно?

+0

Вы должны прочитать или следовать основной учебник по Угловое. Просто использование 'ng-src' и' ng-click' - это не то, как работает Angular. – Lex

ответ

0

ng-click - это угловая директива, которая нуждается в функции, которую вы вызываете changeimage, чтобы быть в рамках этого контроллера. Я создал рабочий пример из вашего кода, который вы можете проверить здесь. https://jsfiddle.net/9bz4Lwxa/112/

В принципе, для «угловатости» вам необходимо создать контроллер и добавить метод, который вы хотите вызвать, щелкнуть по его области.

JavaScript:

angular.module('demoApp', []) 
.controller('SliderController', ["$scope",function ($scope) { 
    $scope.changeImage = function (a) { 
     document.getElementById("img").src= a; 
    }; 
}]); 

Html:

<div ng-app="demoApp" ng-controller="SliderController"> 
    <div id="main-img" class="main-img"> 
    <img id="img" src="image1.jpg"> 
    </div> 

    <div id="thumb-img" class="thumb-img"> 
    <img src='image1.jpg' ng-click='changeImage("image1.jpg");'> 
    <img src='image2.jpg' ng-click='changeImage("image2.jpg");'> 
    </div> 

</div> 
+0

Этот метод простого объявления контроллера только с помощью функции (без регистрации его на модуле) устарел и будет работать только в версиях до углового значения до 1.3. При использовании Angular 1.5.x я думаю, что это OP-плохая услуга, чтобы привести пример, подобный этому, особенно в качестве ссылок JSFiddle v1.0. – Lex

+0

Спасибо, вы правы, но я пытаюсь понять, что OP не хватает большой «концепции» в угловом, и просто заменить onclick на ng-click недостаточно. Я буду обновлять ответ, чтобы быть более актуальным, хотя. – Shaunak

+0

@Lex хорошо, я обновил примеры. – Shaunak

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