0

I have write this "factory" in angularjs

var SimpleHomeCosts=angular
.module('SimpleHomeCosts', [
  'ngRoute'
])
.config(function ($routeProvider) {
  $routeProvider
      .when('/', {
        templateUrl: 'views/buys.html',
        controller: 'BuysCtrl'
      })
      .when('/utenti', {
        templateUrl: 'views/users.html',
        controller: 'UsersCtrl'
      })
      .when('/negozi', {
        templateUrl: 'views/shops.html',
        controller: 'ShopsCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
})
.factory("Shop", function () {
  var shop={};
  return shop;
});

After in my controller I use my "Shop" class factory

    SimpleHomeCosts.controller("ShopsCtrl", function ($scope,Shop) {
  //================Shops Controller================
  console.log(Shop,"shop");
    });

this is html (Controller) shops.html

<div ng-controller="ShopsCtrl"></div>

this is index.html

<!doctype html>
<html class="no-js">
<head>
    <meta charset="utf-8">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width">
    <script src="//angular.localhost:9000/livereload.js"></script>
<link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.css">
<link rel="stylesheet" href="styles/main.css">
<!-- endbuild -->
</head>
<body ng-app="SimpleHomeCosts">
<!--[if lt IE 7]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade
your browser</a> to improve your experience.</p>
<![endif]-->
<div class="container" style="border: 0px solid blue">
    <div class="row">
        <div class="header" style="border: 0px solid green">
        <ul class="nav nav-pills pull-right">
                <li class="active"><a ng-href="#">Home</a></li>
                <li><a ng-href="#/utenti">Utenti</a></li>
                <li><a ng-href="#/spese">Spese</a></li>
                <li><a ng-href="#/negozi">Negozi</a></li>
            </ul>
        </div>
</div>
<!-- container view -->
<div class="row" style="border: 0px solid red">
    <div ng-view="" class="col-lg-12 col-md-12 col-xs-12"></div>
</div>

<div class="footer">
    <!-- <p><span class="glyphicon glyphicon-heart"></span> from the Yeoman team</p> -->
</div>
</div>
<script src="/bower_components/jquery/dist/jquery.js"></script>
<script src="/bower_components/angular/angular.js"></script>
<script src="/bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script src="/bower_components/angular-route/angular-route.js"></script>
<script src="scripts/app.js"></script>
<script src="scripts/controllers/ShopsCtrl.js"></script>
</body>
</html>

If I read into console browser I see:

Object { } shop ShopsCtrl.js (riga 29)
Object { } shop ShopsCtrl.js (riga 29)

Why if I ask only one time the "Shop" angular duplicates my call?

lbottoni
  • 962
  • 2
  • 14
  • 26
  • 1
    It seems like the controller is being executed 2 times. Look http://stackoverflow.com/questions/15535336/combating-angularjs-executing-controller-twice to see if it's your case. If not, providing the template would be helpful :) – Bertofer Aug 26 '15 at 10:29
  • Sorry, Sugarl3ss is correct!, my controller is called into router and hrml file. I must remove ng-controller="ShopsCtrl" from mu shops.html Thanks Sugarls3ss :) – lbottoni Aug 26 '15 at 13:28

1 Answers1

0

I must remove "ng-controller="ShopsCtrl" from file shops.html

lbottoni
  • 962
  • 2
  • 14
  • 26