Pojawił się kolejny problem. Tym razem bardziej z javascriptem. Mam powiedzmy stronę główną. W jednym divie podpięty jest dany controller. do tego diva, po zdarzeniu kliknięcia dodawana jest treść z innego pliku. I niestety ta treść niby jest dodawana prawidłowo wizualnie do tego diva, lecz nie jest pod kontrolą jego kontrolera. A rozchodzi się żeby była jednak. :D
Część js:
$scope.addNextExerciseCl = function () {
setTimeout(function(){
$rootScope.$broadcast('addNextExerciseCl');
}, 100);
};
$scope.$on('addNextExerciseCl', function (event) {
alert($scope.bodyPart.name);
alert($scope.exercise.name);
alert('click');
$rootScope.$broadcast('clEv', $scope.bodyPart, $scope.exercise);
});
$scope.addNextExerciseMU = function () {
$rootScope.$broadcast('addNextExerciseMU');
};
$scope.$on('addNextExerciseMU', function (event) {
alert('mouseUp')
alert($scope.num);
$.post('nextExercise', {num : $scope.num},
function(result){
$( "#addTrainingForm" ).append(result);
alert(result);
});
$scope.num++;
});
Zastanawiałem się nad użyciem innerHtml, ale jakoś mi to rozwiązanie ostatecznie nie podchodzi.
Część treści, która jest łądowana po kliknięciu:
<div class= "row">
<label class="col-md-1 col-md-offset-1 control-label" >Partia:</label>
<label class="col-md-1 col-md-offset-1 control-label addTrainingBodyPart" ng-bind="bodyPart0.name"></label>
<label class="col-md-1 col-md-offset-1 control-label">Ćwiczenie:</label>
<label class="col-md-3 col-md-offset-1 control-label addTrainingExercise" ng-bind="exercise0.name">ćwiczenie</label>
</div>
Javascript obsługujący zmiane bodyPart0 i exercise0.:
$scope.$on('clEv', function (event, bodyPart, exercise) {
setTimeout(function(){
alert('formCOntr');
alert(bodyPart.name);
$scope.bodyPart0 = bodyPart;
$scope.exercise0 = exercise;
}, 100);
});
Zaznaczam, że jeśli treść którą ładuje po kliknięciu umieszczę na sztywno na stronie głównej, to dane ładują się poprawnie(chodzi mi o ng-blind). Także ta treść ładowana po prostu nie działa na tym samym kontrolerze co reszta, w źródle strony po jej dodaniu też się nie wyświetla i nie wiem jak to obejść. Z góry dzięki za pomoc. Troszkę może zawile to wytłumaczyłem :D ;)