I'm trying to seperate my controllers with different files. I looked here and did the following, but I still not able to load the second controller from a new js file. I tried this - Angularjs Impossible to load multiply ng-apps in one page even with angular.boostrap
HTML:
<!DOCTYPE html>
<html lang="en" ng-app="xpCalc">
<head>
<meta charset="UTF-8">
<title>RuneScape Toolkit</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
<script type="text/javascript" src="xpCalc.js"></script>
<script type="text/javascript" src="cmbtCalc.js"></script>
</head>
<body>
<div ng-controller="xpCalculatorController">
<p>Insert your current Level <input type="number" ng- model="currentLevel"></p>
<p>Insert your desired Level <input type="number" ng-model="desiredLevel" ></p>
<h2>{{xpleft() | number}}</h2>
</div>
<br>
<div ng-controller="CombatCalculatorController">
<p>Insert your Attack Level <input type="number" ng-model="ALvl"></p>
<p>Insert your Strength Level <input type="number" ng-model="SLvl"></p>
<p>Insert your Magic Level <input type="number" ng-model="MLvl"></p>
<p>Insert your Range Level <input type="number" ng-model="RLvl"></p>
<p>Insert your HitPoints Level <input type="number" ng-model="HLvl"></p>
<p>Insert your Defense Level <input type="number" ng-model="DLvl"></p>
<p>Insert your Prayer Level <input type="number" ng-model="PLvl"></p>
<h2> {{combatlevel() | number}} </h2>
</div>
</body>
</html>
JS FILE ONE:
var app = angular.module('xpCalc', []);
app.factory('xpService',function(){
var service = {};
function calculate(level) {
var output = 0;
for (var i = 1; i < level; i++) {
output += (Math.floor(i + 300 * Math.pow(2, i / 7)) / 4);
}
return output;
}
service.getxpLeft = function(currentLevel,desiredLevel){
var currentXp = calculate(currentLevel);
var desiredXp = calculate(desiredLevel);
return desiredXp - currentXp;
};
return service;
});
app.controller('xpCalculatorController', function($scope,xpService) {
$scope.currentLevel = 1;
$scope.desiredLevel = 1;
$scope.xpleft = function() {
return xpService.getxpLeft($scope.currentLevel,$scope.desiredLevel);
};
});
SECOND JS FILE:
angular.module('xpCalc').controller('CombatCalculatorController', ["$scope", "$http", function($scope, $http){
$scope.ALvl = 1 ;
$scope.SLvl = 1 ;
$scope.MLvl = 1 ;
$scope.RLvl = 1 ;
$scope.HLvl = 10 ;
$scope.DLvl = 1 ;
$scope.PLvl = 1 ;
}]);