2014-06-19 62 views
0

我目前正在研究angularJS中的一個項目,而且我正在對我們的系統如何工作一點點進行洗牌,但無論出於何種原因,新的返回結果都沒有顯示在角度上.. 下面是我的html看起來像..如何獲取此對象以在AngularJS中打印出來?

<button ng-repeat="company in companies" ng-click="setCompany(company)"> 
       {{ company.name }} 
      </button> 

此外,這是我的js文件中的一段代碼。

$.post("/turnup/index.php/app/companies_near", data, 
     function(response) 
     { 
      $scope.companies = JSON.parse(response); 
      console.log($scope.companies); 
     }); 

,但它不打印出我的對象,它具有以下結構不管出於什麼原因..

[Object] 
0: Object 
distance: "0.00006317660849859675" 
id: "2" 
name: "Pi Kappa Alpha - Epsilon Chapter" 
__proto__: Object 
length: 1 
__proto__: Array[0] 
concat: function concat() { [native code] } 
constructor: function Array() { [native code] } 
every: function every() { [native code] } 
filter: function filter() { [native code] } 
forEach: function forEach() { [native code] } 
indexOf: function indexOf() { [native code] } 
join: function join() { [native code] } 
lastIndexOf: function lastIndexOf() { [native code] } 
length: 0 
map: function map() { [native code] } 
pop: function pop() { [native code] } 
push: function push() { [native code] } 
reduce: function reduce() { [native code] } 
reduceRight: function reduceRight() { [native code] } 
reverse: function reverse() { [native code] } 
shift: function shift() { [native code] } 
slice: function slice() { [native code] } 
some: function some() { [native code] } 
sort: function sort() { [native code] } 
splice: function splice() { [native code] } 
toLocaleString: function toLocaleString() { [native code] } 
toString: function toString() { [native code] } 
unshift: function unshift() { [native code] } 
__proto__: Object 
+0

爲什麼你使用jquery post request而不是angular的'$ http'服務並承諾? –

+0

我在使用codeigniter時很麻煩(對於角度來說很新穎)。我不得不不得不急於推動這個項目。 – user3707857

+0

您需要在更新您的公司後應用您的更改,因爲您的帖子超出了角度摘要循環。 –

回答

1

這是因爲您使用的是jquery,而不是$ http服務。 Angular沒有檢測到來自外部請求的請求的變化,例如jquery。如果你想使用jQuery而不是$ http,無論出於何種原因,你將需要調用$ scope.apply()來告訴角度值已經改變。

這應該工作

$.post("/turnup/index.php/app/companies_near", data, 
     function(response) 
     { 
      $scope.$apply(function(){ 
        $scope.companies = JSON.parse(response); 
      }); 
     }); 

https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope#$如果您使用的角度應用

+0

工作..我還必須獲取範圍變量。謝謝, – user3707857

0

你需要$申請更新公司後所做的更改,因爲您的文章是角消化週期之外。 所以你做

$scope.$apply(); 

你的任務後應該這樣做。如何試圖解決$ http問題,這將是一個更清潔和容易的工作。

0

,肯定更喜歡$ HTTP超過$。員額:

$http({ url:'/turnup/index.php/app/companies_near', method:'POST'}) 
.success(data) { 
     $scope.companies = data; 
     console.log($scope.companies); 
});