我試圖用相同的json數據顯示我的html頁面的兩個部分,我不想包含在同一個控制器,因爲它位於不同的區域。我曾在 「角服務」 使用本地JSON數據來實現這一概念成功地看到演示單控制器的多個html部分和來自ajax請求的數據angularjs
<div ng-app="testApp">
<div ng-controller="nameCtrl">
<a href="#" ng-click="addName();">Add New</a>
<a href="#" ng-click="removeName();">Remove First</a>
<ul id="first" class="navigation">
<li ng-repeat="myname in mynames">{{myname.name}}</li>
</ul>
</div>
<div>
Lot of things in between
</div>
<ul id="second" class="popup" ng-controller="nameCtrl">
<li ng-repeat="myname in mynames">{{myname.name}}</li>
</ul>
JS
var testApp = angular.module('testApp', []);
testApp.service('nameService', function($http) {
var me = this;
me.mynames = [
{
"name": "Funny1"
},
{
"name": "Funny2"
},
{
"name": "Funny3"
},
{
"name": "Funny4"
}
];
//How to do
/*this.getNavTools = function(){
return $http.get('http://localhost/data/name.json').then(function(result) {
me.mynames = result.mynames;
return result.data;
});
};*/
this.addName = function() {
me.mynames.push({
"name": "New Name"
});
};
this.removeName = function() {
me.mynames.pop();
};
});
testApp.controller('nameCtrl', function ($scope, nameService) {
$scope.mynames = nameService.mynames;
$scope.$watch(
function(){ return nameService },
function(newVal) {
$scope.mynames = newVal.mynames;
}
)
$scope.addName = function() {
nameService.addName();
}
$scope.removeName = function() {
nameService.removeName();
}
});
接下來的事情我想做的是做一個HTTP請求到JSON文件並加載我的兩個部分的數據,如果我添加或刪除它d反映在這兩個領域。
任何指針或存在演示將是非常有用的。
感謝
當你取消對評價方法getNavTools會發生什麼。你只需要抽象你創建的靜態mynames數組來調用getNavTools方法。 – akjha627
我已經更新了演示與http請求,現在發生的是隻有最後一個html部分只更新,如果我點擊添加或刪除鏈接 jsfiddle.net/tomalex0/z6fEf/5/ – tomalex
@ user538776我回答你的問題基於你的更新演示,檢查出來。並請更新您的問題。 –