2017-03-23 118 views
0

我有我的變量$scope.test是不斷變化的問題。

首先我有的node.js服務器,它返回一個JSON對象像下面的一個上的功能:

{ 
    objectOne: "some text", 
    objectTwo: "more text", 
    objectThree: { 
     text: "important text", 
     inf: "some info" 
    }, 
    objectFour: "even more text" 
} 

然後在角我有一個控制器。 (此控制器用於2個html模板,不確定是否重要)。因此,要在控制器中的功能:

$scope.start = function() { 
    $location.path('/start'); 
    SomeService.start({}, someVar, function (success, msg, t) { 
     if (!success) { 
      console.error(msg); 
     } 

     $scope.test = t; 
     console.log($scope.test); //this prints out the json object above 
    }); 
}; 

然後,我有一個模板文件的test.html:

<div> 
    <md-card> 
     <md-card-title> 
      <md-card-title-text> 
       <span class="md-headline">{{test.objectThree.text}}</span> 
      </md-card-title-text> 
     </md-card-title> 
     <md-card-actions layout="row" layout-align="end center"> 
      <md-button>Cancel</md-button> 
     </md-card-actions> 
    </md-card> 
</div> 

的問題是,它並沒有顯示文本。所以我在控制器中做了另一個功能,每100ms記錄一次$scope.test

$interval(function() { 
    console.log($scope.test); 
}, 100); 

現在奇怪的是,它打印出類似於下面的示例:

Object { 
     objectOne: "some text", 
     objectTwo: "more text", 
     objectThree: { 
      text: "important text", 
      inf: "some info" 
     }, 
     objectFour: "even more text" 
     } 

-

undefined 

-

undefined 

這樣下去。一旦它打印出對象,然後2次未定義。 但是當我定義vairable $scope.test2 = "test2text"外的函數,然後有我的HTML這樣的:

<div> 
    <md-card> 
     <md-card-title> 
      <md-card-title-text> 
       <span class="md-headline">{{test2}}</span> 
      </md-card-title-text> 
     </md-card-title> 
     <md-card-actions layout="row" layout-align="end center"> 
      <md-button>Cancel</md-button> 
     </md-card-actions> 
    </md-card> 
</div> 

它的工作原理,並顯示在網站上的文字,但我沒有任何想法,爲什麼。

因此,沒有人有一個想法,爲什麼是這樣呢? 如果您需要更多信息,請詢問。 謝謝你抽出時間;)

+0

'console.log(var);'把它放在$ interval並檢查結果是否一樣。如果再使用,如果條件檢查值是未定義或不 –

回答

2

不要通過$scope左右,這是非常棘手的事情,可以混淆。

然而,您可以使用service爲您的控制器提供functions並從那裏使用它。

similar problem and workaround

+0

確定好,這是愚蠢的我取的名字VAR例如,但其實我有另一個變量名 –

+0

@OrellBuehler我已經編輯我的職位,檢查出來 – Erazihel

+0

好吧,這是一個好點,但我用另一種方式解決了這個問題。我爲2個不同的HTML文件創建了第二個控制器。因爲問題是在更改$ location.path時它啓動了一個控制器的新實例或類似的東西,但我不是100%確定的。 –