2016-12-10 19 views
1

嘗試基於服務器響應更新VUE屬性的值:設定值的屬性上的GET請求

@registration = new Vue(
    el: '#calculator_calendar' 
    data: 
     constraints: 
     amount: 
      min: null 
      max: null 

和方法,我做的GET請求

loadConstraints:() -> 
    @$http.get(constraintsUrl).then ((response) -> 
     @$set 'constraints.amount.min', response.data.constraints.amount.min 

什麼是正確的語法更新constraints.amount,min

與舊版本用來做

@$set 'constraints.amount.min', response.data.constraints.amount.max 

,但它不工作了,但沒有對

Uncaught (in promise) TypeError: Cannot create property '100' on string 'constraints.amount.min' 

版本:

  • Vue的V2.0.8
  • vue-resource v1.0.3

回答

1

您可以只分配給它,就像是在JavaScript完成:

loadConstraints:() => { 
    var vm = this 
    $http.get(constraintsUrl).then ((response) => 
     vm.constraints.amount.min' = response.data.constraints.amount.min 
+0

我知道我能做到這一點,但不會因此受到影響的方式反應工程?他們說在那個鏈接「vm.b = 2 //'vm.b'不是反應性的」。 https://vuejs.org/v2/guide/reactivity.html – rmagnum2002

+0

無論如何,我想我現在就會這樣,如果沒有其他答案很快就會被添加,我會接受它。如果在[data](https://vuejs.org/v2/api/#Options-Data)屬性中沒有定義'b',那麼謝謝 – rmagnum2002

+2

@ rmagnum2002,在這種情況下'vm.b'不會被反應,但是因爲您已經在數據中定義了您的'constraints.amount.min',它應該是被動的。如果在視圖中渲染,您可以看到這是否被動。 – Saurabh