2016-04-20 14 views
0

この例では、https://jsfiddle.net/jccrosby/eRGT8/を使用してタブ付きスパを作成しています。これまでのところ動作していますが、以下のようにhttp://jsfiddle.net/mjaric/pj5br/を組み合わせた別のコントローラを追加しようとすると、元のタブも失われています。Angular JSのタブにコントローラーを追加

<div ng-app="TabsApp"> 
<div id="tabs" ng-controller="TabsCtrl"> 
    <ul> 
     <li ng-repeat="tab in tabs" 
      ng-class="{active:isActiveTab(tab.url)}" 
      ng-click="onClickTab(tab)">{{tab.title}}</li> 
    </ul> 
    <div id="mainView"> 
     <div ng-include="currentTab"></div> 
    </div> 
</div> 
<script type="text/ng-template" id="one.tpl.html"> 
    <div id="viewOne" > 
     <h1>View One</h1> 
     <p>1.</p> 
    </div> 
</script> 

<script type="text/ng-template" id="two.tpl.html"> 
    <div id="viewTwo" ng-controller="PeopleCtrl"> 
     <h1>View Two</h1> 
      <p>Click <a ng-click="loadPeople()">here</a> to load</p> 
    <table> 
    <tr> 
     <th>Id</th> 
     <th>First Name</th> 
     <th>Last Name</th> 
    </tr> 
    <tr ng-repeat="person in people"> 
     <td>{{person.id}}</td> 
     <td>{{person.firstName}}</td> 
     <td>{{person.lastName}}</td> 
    </tr> 
    </table> 
    </div> 
</script> 

<script type="text/ng-template" id="three.tpl.html"> 
    <div id="viewThree"> 
     <h1>View Three</h1> 
     <p>3.</p> 
    </div> 
</script> 

jsのよう

var mockDataForThisTest = "json=" + encodeURI(JSON.stringify([ 
{ 
id: 1, 
firstName: "Peter", 
lastName: "Jhons"}, 
{ 
id: 2, 
firstName: "David", 
lastName: "Bowie"} 
])); 

var app = angular.module('TabsApp', []); 
app.controller('TabsCtrl', ['$scope', function ($scope) { 
$scope.tabs = [{ 
     title: 'One', 
     url: 'one.tpl.html' 
    }, { 
     title: 'Two', 
     url: 'two.tpl.html' 
    }, { 
     title: 'Three', 
     url: 'three.tpl.html' 
}]; 

$scope.currentTab = 'one.tpl.html'; 

$scope.onClickTab = function (tab) { 
    $scope.currentTab = tab.url; 
} 

$scope.isActiveTab = function(tabUrl) { 
    return tabUrl == $scope.currentTab; 
} 
}]); 
app.controller('PeopleCtrl',['$scope','$http',function ($scope, $http) { 

$scope.people = []; 

$scope.loadPeople = function() { 
    var httpRequest = $http({ 
     method: 'POST', 
     url: '/echo/json/', 
     data: mockDataForThisTest 

    }).success(function(data, status) { 
     $scope.people = data; 
    }); 

}; 

}]}; 

出力ファイル:だから私は2番目のタブ内部の作業を第二の例を必要とするだけの[1]タブの他には何も

を示す
{{tab.title}} 

以下 。試してみるAngular jsの新機能私は何が間違っているのか分かりません。ここ はサンプルです:

https://jsfiddle.net/gen14rp5/

答えて

1

角度JSライブラリが追加されていないだけでフィドルにライブラリの参照を追加

+0

申し訳ありませんが、それを逃したが、問題はそれとは関係ありません。私はそれをローカルで実行しています – Dexters

+0

これはあなたが欲しいものですか? https://plnkr.co/edit/8MOquxlcrVsU0Cm2SVxY?p=preview –

+0

はい、問題は解決しましたが、これには直接値が割り当てられていますか?とにかく例2のようにhttpRequestを使用する場合 – Dexters

関連する問題