Страница 1 из 1
AngularJS объект во view
Добавлено: 2018.06.05, 11:59
Gil707
Господа, необходим кроппер/сегментор ихображений, нашел его на
гитхабе
Используется Angular (с ним особо не имел опыта работы)
Локально все работает, запускается, как только вставляю в Yii view и рендерю его через контроллер во-первых не скрываются кнопки, которые должны отображаться только когда изображение загружено, во вторых не происходит реакция на клик (ng-click)
Все ассеты подключил как обычно
Код: Выделить всё
...
$ this-> registerJsFile ('/ moderator / js / segment / vision / compatible.js', ['position' => yii \ web \ View :: POS_END]);
$ this-> registerJsFile ('/ moderator / js / segment / vision / dat.gui.min.js', ['position' => yii \ web \ View :: POS_END]);
$ this-> registerJsFile ('/ moderator / js / segment / hopscotch / js / hopscotch.js', ['position' => yii \ web \ View :: POS_END]);
$ this-> registerJsFile ('https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js', ['position' => yii \ web \ View :: POS_END]) ;
...
Может где-то не там подключен ангуляр, хотя ошибок никаких нет в консоли.
Если сохраняю теги вида <script>... то ругается на отсутствие функций.
Re: AngularJS объект во view
Добавлено: 2018.06.05, 12:28
urichalex
Ангуляр 1.2.5 в 2к18? Rly?
Пробелы между слэшами - это ошибка копипаста или вы так на самом деле пишете?
В консоли ошибки есть?
Элемент с ng-click находится в области видимости контроллера?
Обработчик ng-click существует в контроллере?
Re: AngularJS объект во view
Добавлено: 2018.06.05, 12:36
Gil707
Да, ну собственно, идея была не поломать ничего, код написан давно, таких библиотек бесплатных больше нет.
Пробелы ошибка (со стака копировал, хз почему так подставил)
Во вьюшке примерно такая структура (взял только 1 кнопку чтобы много кода не копипастить)
Код: Выделить всё
<div class="wrapper" ng-controller="CanvasControls">
<div class="row large-margin">
<div class="col-xs-1 m-t" object-buttons-enabled="getSelected()" id="side_options">
<div class="outer">
<form id="image-form" onsubmit="return false;">
<input type='file' id='imgfile' style="display:none"/>
<a type='button' class="btn btn-app btn-default" id='btnLoad' ng-click='load_image();'><i class="fa fa-image"></i>Add image</a>
</form>
</div>
</div>....
в app_config
Код: Выделить всё
var cveditor = angular.module('cveditor', []);
cveditor.config(function($interpolateProvider) {
$interpolateProvider
.startSymbol('{[')
.endSymbol(']}');
});
cveditor.directive('bindValueTo', function() {
return {
restrict: 'A',
link: function ($scope, $element, $attrs) {
var prop = capitalize($attrs.bindValueTo),
getter = 'get' + prop,
setter = 'set' + prop;
$element.on('change keyup select', function() {
$scope[setter] && $scope[setter](this.value);
});
$scope.$watch($scope[getter], function(newVal) {
if ($element[0].type === 'radio') {
var radioGroup = document.getElementsByName($element[0].name);
for (var i = 0, len = radioGroup.length; i < len; i++) {
radioGroup[i].checked = radioGroup[i].value === newVal;
}
}
else {
$element.val(newVal);
}
});
}
};
});
cveditor.directive('objectButtonsEnabled', function() {
return {
restrict: 'A',
link: function ($scope, $element, $attrs) {
$scope.$watch($attrs.objectButtonsEnabled, function(newVal) {
console.log('123');
$($element).find('.btn-object-action')
.prop('disabled', !newVal);
});
}
};
});
controller.js в гите без изменений, да собственно все файлы без изменений. Интересно почему не работает именно в Yii, подозреваю что проблема в загрузке/порядке загрузки но не могу выявить где
Re: AngularJS объект во view
Добавлено: 2018.06.05, 12:37
Gil707
В консоли все пусто вообще
Как бы впринципе как вариант решения вырезать его вообще, просто изначально лезть в него не хотелось, поняв, что все работает, а с Yii что-то не заводится..
Если консолить события на клик на кнопку, в плане
Код: Выделить всё
$scope.load_image = function(){
console.log('load image'); ...
То в консоли ничего нет, т.е. события клик он не перехватывает вообще я так подразумеваю
Re: AngularJS объект во view
Добавлено: 2018.06.05, 12:57
Gil707
Даже хинты всплывают, проблема только с ангуляровских scope
На оригинале большая часть кнопок появляется только после загрузки изображения, тут сразу все
Re: AngularJS объект во view
Добавлено: 2018.06.05, 14:21
urichalex
А контроллер вообще подключен? В первом посте я не вижу контроллера
Re: AngularJS объект во view
Добавлено: 2018.06.07, 18:01
Gil707
urichalex писал(а): ↑2018.06.05, 14:21
А контроллер вообще подключен? В первом посте я не вижу контроллера
Да, само собой, там просто не стал все копировать но "controller.js" присутствует
Re: AngularJS объект во view
Добавлено: 2018.06.08, 00:54
futbolim
Сократил так сократил ; )