2016-12-20 6 views
0

以前は動作していました。私は何が変わったのか分かりません。そのアイデアは「Pesquisar」ボタンをクリックするとコントローラがデータを取得し、ビューを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

このコードを使って、たくさんのコードを読んだりするといいでしょう。 – jbrown

答えて

1

現在、身体上やlogin.htmlでdiv要素の両方ng-controller="MainCtrl as main"を持っています。これは、MainCtrlという2つのインスタンスが作成され、はあるインスタンスの変数templateを使用し、もう1つのインスタンスはtemplateという変数が更新されていることを意味します。

ng-controller="MainCtrl as main"login.htmlから削除します。

もう1つの注意点として、の代わりにngRouteモジュールをルーティングに使用することを強くおすすめします。

+0

ありがとうございます。それは私の愚かだった。 ngRouteを使用しようとしましたが、動作しませんでした。もう一度試してみてください。私は数日前にAngularを学び始めました。 –

+0

あなたは歓迎です:)ここに簡単な例があります:http://plnkr.co/edit/E7PLPb2MIIN9tT0qimQe?p=preview – tasseKATT

+1

ありがとう!!!!!!!!! –

関連する問題