2016-12-20 3 views
0

Он работал раньше. Я не знаю, что я изменил, что заставляет работать. Идея заключалась в том, что когда я нажимаю кнопку «Пескарь», тогда мой контроллер берет данные и после того, как он изменит представление на main.html. Он работал очень хорошо, но это была простая остановка работы.

index.html

<body ng-app="mundiApp" ng-controller="MainCtrl as main"> 

<div ng-include="template"></div> 

<!-- build:js(.) scripts/vendor.js --> 
<!-- bower:js --> 
<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-animate/angular-animate.js"></script> 
<script src="bower_components/angular-cookies/angular-cookies.js"></script> 
<script src="bower_components/angular-resource/angular-resource.js"></script> 
<script src="bower_components/angular-route/angular-route.js"></script> 
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script> 
<script src="bower_components/angular-touch/angular-touch.js"></script> 
<!-- endbower --> 
<!-- endbuild --> 

<!-- build:js({.tmp,app}) scripts/scripts.js --> 
<script src="scripts/app.js"></script> 
<script src="scripts/controllers/main.js"></script> 
<!-- endbuild --> 

main.js - контроллер

'use strict'; 


angular.module('mundiApp') .controller('MainCtrl',['$scope','$http', function($scope, $http) { 
var vm = this; 
$scope.username =""; 
$scope.template = "/views/login.html"; 

this.pesquisarUsuario = function(usuario){ 

    $http({ 
    method: 'GET', 
     url: 'https://api.github.com/users/'+usuario + '/repos' 
    }).then(function successCallback(response) { 
     vm.login = response.data[1].owner.login; 
     vm.foto = response.data[1].owner.avatar_url; 
     vm.url = response.data[1].owner.html_url; 
     var projects = []; 
     $(response.data).each(function() { 

      projects.push({ 
       name: this.name,    
       url: this.html_url, 
       forks: this.forks_count, 
       stars: this.stargazers_count, 
       contributors: 11, //usar api pra pegar response.data.contributors_url 
       commits: 101, //'https://api.github.com/repos/'+usuario +'/'response.data.name+'/commits' 
      }); 

     }); 

     vm.projects = projects; 
     $scope.template = ""; 

    }); 
};}]); 

login.html

<div class="login"> 
<div class="painel" ng-controller="MainCtrl as main"> 
    <form class="form-group"> 
    <label for="Search">Usuário</label><br/> 
    <input type="text" class="form-control" ng-model="usuario" placeholder="Digite o usuario"> 
    <br/> 
    <button class="btn btn-primary form-control" ng-click="main.pesquisarUsuario(usuario)" >Pesquisar</button> 
    </form> 
</div> 

main.html

+0

С этим большим количеством кода, чтобы пройти через plunk было бы хорошо. – jbrown

ответ

1

У вас ng-controller="MainCtrl as main" как на теле и на DIV в login.html. Это означает, что будут созданы два экземпляра MainCtrl и что ng-include будет использовать переменную template из одного экземпляра, тогда как другая переменная template является той, которая обновляется.

Удалить ng-controller="MainCtrl as main" от login.html.

В другом примечании я настоятельно рекомендую использовать модуль ngRoute для маршрутизации вместо ng-include.

+0

Большое спасибо. Это было глупо со мной. Я пытался использовать ngRoute, но не работал. Вы, например, пробуете меня еще раз? Несколько дней назад я начал изучать Angular. –

+0

Добро пожаловать :) Вот простой пример: http://plnkr.co/edit/E7PLPb2MIIN9tT0qimQe?p=preview – tasseKATT

+1

Спасибо !!!!!!!!! –

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