1
這裏是撥弄我的問題http://jsfiddle.net/gxbwk6dk/7/AngularJS:如何從角度解析中獲取數據?
我有一個服務找到一個JSON, 的元素,我打電話從控制器服務兩次,但我與兩個電話得到的結果都是一樣的。
在示例elementObj1
和elementObj2
具有相同的數據
任何解決方案將是受歡迎的。
var app=angular.module("myapp",[]);
app.controller("myctrl",function($scope,myservice)
{
console.log("add of two "+myservice.addTwo(5,7));
$scope.sum=myservice.addTwo(5,7);
$scope.sampleObj={
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
};
myservice.findElement($scope.sampleObj,'GlossEntry').then(function(data){
$scope.elementObj1=data;
\t console.log("find element object1 ", $scope.elementObj1);
});
myservice.findElement($scope.sampleObj,'GlossList').then(function(data){
$scope.elementObj2=data;
\t console.log("find element object2 ", $scope.elementObj2);
});
}
);
app.factory("myservice",function($q,$timeout){
var deferred = $q.defer();
return{
\t addTwo:addTwo,
\t findElement:findEle,
\t sample:sample
\t
};
function sample(jsObject)
{
var deferred = $q.defer();
$timeout(function(){deferred.resolve(jsObject)},5000);
return deferred.promise;
}
\t function addTwo(a,b)
\t {
\t \t return a+b;
\t }
function findEle(jsObject,searchEle)
\t {
\t for(obj in jsObject)
\t {
\t \t console.log("obj "+obj+" mapobj "+jsObject[obj]);
\t \t if(obj===searchEle)
\t \t {
\t \t \t console.log("element found "+obj);
deferred.resolve(jsObject[obj]);
\t \t \t
\t \t }
\t \t if(typeof jsObject[obj]==="object")
\t \t findEle(jsObject[obj],searchEle);
\t \t \t
\t }
return deferred.promise;
\t }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myapp" ng-controller="myctrl">
<input type="text" ng-model="name" />
<h2 ng-bind="name"></h2>
display object 1
<table>
<tr ng-repeat="(key, value) in elementObj1">
<td> {{key}} </td> <td> {{ value }} </td>
</tr>
</table>
display object 2
<table>
<tr ng-repeat="(key, value) in elementObj2">
<td> {{key}} </td> <td> {{ value }} </td>
</tr>
</table>
</body>
太謝謝你了@ Johnny Ha –
歡迎您光臨@thaveethu gce –